Sunday 28 October 2007

LP64 への書き換え



産業祭では、自分のソフトのLP64対応やってました。はまりまくっていたのを目撃した人も多いでしょう。他にやらなきゃならないことも、結構あるので、まぁ、逃避みたいなものですが。

LP64 では、int 32bit, long 64bit, int* 64bit になるので、int にpointerを入れているのは全部だめ。古いソフトなので、そういうところが結構ある。

じゃぁ、#define int long すりゃいいんじゃないかと思うと、int i; printf("%d",i); で引っかかる。long i; printf("%ld",i) にしないとだめ。

でも、32bitで済むところを全部64bitってのも、もったいない。全部倍だものな〜

ってわけなので、int にpointerを入れているところをシコシコ直しました。pointer をintで受けている関数を直す時には、hoge を hogen とかに直していったので、なんとなく、ハンガリアン記法っぽくなった。cast が減ったのでいいかってなところです。

結構、時間がかかると思ったら、もう終ってしまった。今日は、真面目に仕事するか...

No comments: