iOS

2014-04-29, ios

iOS処理系のlong型

暗黙のキャストがどうだこうだとしょっちゅうコンパイルに怒られていて、未だにしっかりと理解が出来ていないんですが、ちょっとハマりそうな箇所を見つけたのでメモしておきます。iOS処理系(つまりXcodeでコンパイルすると)のint型とlong型はサイズが同じです。4bytesなので符号付きの場合21億くらいが最大値になります。

NSLog(@"%lu",sizeof(int)); // 4
NSLog(@"%lu",sizeof(long)); // 4

古いC処理系ではintが16bitであることが普通だったと考えると、(32bit以上のCPUが普通の現状では)intが拡張されて32bit常に使えるというのは有難いことなのですが、確かJavaではintが32bitでlongが64bitだったので、この常識を持ち込んでコードを書いてしまうと大変な目に遭うことがありそうです…。恐ろしい。

参考URL

この記事は役に立ちましたか?