OS X 10.5.6に64ビット整数を強制しようとしています。 Apple MacBook Intel Core 2 Duoで動作します。OS Xで64ビット整数演算を強制するにはどうすればよいですか?
#include<stdio.h>
int main()
{
long a = 2147483647; /*== 2^32 - 1*/
long aplus1;
printf("a== %d. sizeof(a) == %d \n", a, sizeof(a));
aplus1 = a+1;
printf("aplus1 = %d \n", aplus1);
}
任意のスイッチなしのコンパイル以下の収率:
$ gcc testlong.c -o testlong ;./testlong
a== 2147483647. sizeof(a) == 4
aplus1 = -2147483648
-m64スイッチ収率でコンパイル:
$ gcc testlong.c -o testlong -m64; ./testlong
a== 2147483647. sizeof(a) == 8
aplus1 = -2147483648
ので番目のバージョンが明らかに使用されてここに私のCコードがあります64ビットの記憶域であるが、依然としてオーバーフローエラーを生成するが、2^32は64ビット整数の範囲内にあるべきである。何か案は?
私は、複数の行のソースコードを変更する必要はなく、gccオプションを強制することができます(私の実際の問題は上記の例ではなく、もっと長い整数演算を強制する必要があります)概況)。
すぐにお返事ありがとうございます!しかし、-m64スイッチの有無にかかわらず、動作しないようです。 – seandbarrett