Visual Studio では、_USE_32BIT_TIME_T を宣言することで 32 ビットの time_t を強制的に使用できますが、gcc に同様のものはありますか? それとも常に32ビットですか、それとも常に64ビットですか?
6549 次
1 に答える
7
タイプはtime_tgcc ではなく、システム ライブラリによって定義されます。Linux では、これは glibc であり、ヘッダーで次のように定義time_tされます。time.h
typedef __time_t time_t;
これは、次のように定義されていbits/types.hます。
__STD_TYPE __TIME_T_TYPE __time_t;
(__STD_TYPE定義は面白くありません)、
__TIME_T_TYPEで定義されていbits/typesizes.hます:
#define __TIME_T_TYPE __SLONGWORD_TYPE
これは、次のように定義されていbits/types.hます。
#define __SLONGWORD_TYPE long int
これは、32 ビット システムでは 32 ビット、64 ビット システムでは 64 ビットです。これらの定義はすべて無条件であるため、_USE_32BIT_TIME_Tglibc には同等のものはありません。
于 2010-04-14T07:33:11.173 に答える