リターンが未定義とか、intの大きさとか?
ちゃんと使えばANSI Cで定義された通りに動きますよ。
コンパイラは人間の意図した通りにうごきません。
仕様にそって、書かれたCのソースに沿った事にしたがって動きます。