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 の並び方にモロに依存するのでしょうが。
これって 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となります。