海馬が壊れ気味な毎日。
一度じゃ覚えられないこと多数。
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
を使う。