Hatena::ブログ(Diary)

備忘録 beta

2009-01-02

GCCとG++でのswitch文内のcaseラベルにおけるconst定数の扱いの違い

GCCとG++でのswitch文内のcaseラベルにおけるconst定数の扱いの違い


#include <stdio.h>

int main(void)
{
	const int A = 2;
	int a = 2;
	
	switch(a)
	{
	case A:
		puts("ok");
		break;
	}
}
$ gcc test.c
test.c: In function ‘main’:
test.c:10: error: case ラベルを整数定数に還元できません

$ cp test.c test.cpp

$ g++ test.cpp

C(GCC)ではconst定数は使えない・・・

#defineで代用するべきのようだ。

C++(g++)では問題無し。

他のコンパイラでは試してない。

2008-10-25

main=-277;

$ cat test.c
main=-277;
$ gcc test.c
test.c:1: 警告: データ定義が型や記憶クラスを持っていません
$ ./a.out 


無限ループ・・・

まずコンパイル通のが不思議。。