>>482
なんでなんだろうね。VC++でもGCCでもiがまるでunsigned longであるかのようなコードになってる
https://msdn.microsoft.com/ja-jp/library/c70dax92.aspx
"プレフィックスもサフィックスも付かない場合、コンパイラは整数リテラル値に型 int (32 ビット) を与えます。値が収まりきらない場合は型 long long (64 ビット) を与えます。"
4000000000が4000000000LLと解釈されてるとしても変な気がする。

例えば下のようにすると無限ループになる
long i;
long long c = 4000000000LL;
for (i = 0; i < c; i++) {
num += 0.000000001;
}

いずれにせよこんな危なっかしいコードは書かないほうが良いと思う