これを行う方法はありますか?
#if sizeof(int) == 4
typedef unsigned int Integer32;
#else
typedef unsigned long Integer32;
#endif
または、整数サイズを#defineして、さまざまなヘッダーをコンパイルする必要がありますか?
これを行う方法はありますか?
#if sizeof(int) == 4
typedef unsigned int Integer32;
#else
typedef unsigned long Integer32;
#endif
または、整数サイズを#defineして、さまざまなヘッダーをコンパイルする必要がありますか?
正確なサイズが必要な場合は、intXX_t
およびuintXX_t
バリアントを使用できます。XX は 8、16、32、または 64 です。
少なくともある程度のサイズの型が必要な場合は、 and を使用int_leastXX_t
しuint_leastXX_t
ます。
高速が必要な場合は、 とを使用int_fastXX_t
しuint_fastXX_t
ます。
これらは<stdint.h>
、C99 に付属の から取得します。C99 を持っていない場合は、少し難しくなります。sizeof(int)
プリプロセッサが型を認識していないため、使用できません。INT_MAX
そのため、 (fromなどを使用<limits.h>
して、特定の型が必要なものに対して十分な大きさであるかどうかを判断します。