トップ «前の日記(Tue Oct 22 2002) 最新 次の日記(Tue Nov 05 2002)» 編集

よこいまさる日記



Mon Oct 28 2002 [長年日記]

[Computer] GCC での swich() 文では…

C 言語の switch() 文で「'1' から '9' の場合、ホゲホゲする」なんていうのを書く場合、普通なら

void swich_hoge (char *src) {
	swich (src[0]) {
	case '1': case '2': case '3': case '4': case '5':
	case '6': case '7': case '8': case '9':
		hogehoge(src);
		break;
	default:
		fugafuga(src);
		break;
	}
}
と書かなければならないんだけど GCC の場合

void swich_hoge (char *src) {
	swich (src[0]) {
	case '1' ... '9':
		hogehoge(src);
		break;
	default:
		fugafuga(src);
		break;
	}
}
なんて書いてしまってもイイみたい。ただし Collate の類いは ISO-646 の並び方にモロに依存するのでしょうが。

[Computer] INT_MAX

これって glibc だけかもしれないけど、 INT_MAX っていうのが define されていますな。

#include <stdio.h>
#include <values.h>
int main (int argc, char ** argv) {
	printf("int max = %d 0x%x\n", INT_MAX, INT_MAX);
}
他の libc ではどうなっているのか知らないのですが、IA-32 で実行すると

$ ./a.out
int max = 2147483647 0x7fffffff
となります。


2000|10|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|