ページ 11

無題

Posted: 2008年1月26日(土) 23:52
by prg
VC2005で、goto文を使いたいのですが、goto ラベル名 ラベル名;とやると
定義されていないラベルですと出てしまいます。
ラベルは、どのように定義するのでしょうか?

Re:無題

Posted: 2008年1月27日(日) 00:10
by box
goto ラベル名;



ラベル名:

のペアを使ってください。

Re:無題

Posted: 2008年1月27日(日) 00:32
by prg
具体的に、どのようにラベルを宣言するのですか?(サンプルをはってくれるとうれしいです)

Re:無題

Posted: 2008年1月27日(日) 07:15
by box
#include <stdio.h>

int main(void)
{
	int n = 123;
	
	if (n == 0)
		goto label0;
	else
		goto label1;
	
	label0:
	printf("nは0\n");
	goto end;
	
	label1:
	printf("nは0以外\n");
	
	end:
	return 0;
}

Re:無題

Posted: 2008年1月27日(日) 09:42
by tk-xleader
注意する事があります。ラベルの後には必ずセミコロンのある文が必要です(要は戻り値のない関数の市場主路に飛ぶ時とかはラベルの後にセミコロンをつける必要があるということです)

Re:無題

Posted: 2008年1月27日(日) 18:46
by たかぎ
> ラベルの後には必ずセミコロンのある文が必要です

ラベルを書くときは「ラベル付き文」でなければなりません。
文なので、必ずしもセミコロンが必要というわけではなく、複合文やif文などでもかまいません。

Re:無題

Posted: 2008年1月27日(日) 20:30
by prg
ありがとうございます。