イナヅマTVログ

Objective-C事始め – もう忘れないiOS longは32bit

| 0件のコメント

海馬が壊れ気味な毎日。
一度じゃ覚えられないこと多数。

iOS long型、桁の話。

iOS arm CPUは32bit。
iOS longも32bit。

1
2
3
4
5
6
int int1 = 12345678901;
long long1 = 12345678901;
long long long2 = 12345678901;
 
NSLog(@"int1:%d long1:%ld long2:%lld", int1, long1, long2);
// int1:-539222987 long1:-539222987 long2:12345678901

*Xcodeではline.1, 2 で警告が出ます。

int と long の出力結果は同じです。
long longだと桁あふれをおこしていません。

【教訓】
iOSで64bitを取り扱う予定の時は、
longじゃなくてlong longを使う。

【参考】
驚愕の事実。Objective-Cのintとlongの最大値は同じだった。

コメントを残す