コンパイラはデフォルトを使用しています。
#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のようなものを付けるのかと想像したのですが、あくまで想像です。