0

これを行う方法はありますか?

#if sizeof(int) == 4
typedef unsigned int Integer32;
#else
typedef unsigned long Integer32;
#endif

または、整数サイズを#defineして、さまざまなヘッダーをコンパイルする必要がありますか?

4

1 に答える 1

2

正確なサイズが必要な場合は、intXX_tおよびuintXX_tバリアントを使用できます。XX は 8、16、32、または 64 です。

少なくともある程度のサイズの型が必要な場合は、 and を使用int_leastXX_tuint_leastXX_tます。

高速が必要な場合は、 とを使用int_fastXX_tuint_fastXX_tます。

これらは<stdint.h>、C99 に付属の から取得します。C99 を持っていない場合は、少し難しくなります。sizeof(int)プリプロセッサが型を認識していないため、使用できません。INT_MAXそのため、 (fromなどを使用<limits.h>して、特定の型が必要なものに対して十分な大きさであるかどうかを判断します。

于 2013-01-15T22:26:30.997 に答える