コンパイラはデフォルトを使用しています。
#include <stdio.h>
int main(void) {
unsigned long long a=0xffffffffffffffff;
long long b=0xffffffffffffffff;
printf("%ld %ld\n",a,b);
return 0;
}
このソースをコンパイルしてみたのですが、整数が大きすぎる(たぶん)と怒られます。具体的なエラーメッセージはこれです。
D:\(中略)\test.c In function `main': 4 D:\(中略)\test.c [Warning] integer constant is too large for "long" type 5 D:\(中略)\test.c [Warning] integer constant is too large for "long" typelong long型のサイズは8バイトだと思ったのですが、なぜ怒られるかわかりません。
sizeof(a)は8になっています。
もしかしたら1.0fのfのようなものを付けるのかと想像したのですが、あくまで想像です。