Visual Studio では、_USE_32BIT_TIME_T を宣言することで 32 ビットの time_t を強制的に使用できますが、gcc に同様のものはありますか? それとも常に32ビットですか、それとも常に64ビットですか?
6549 次
1 に答える
7
タイプはtime_t
gcc ではなく、システム ライブラリによって定義されます。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_T
glibc には同等のものはありません。
于 2010-04-14T07:33:11.173 に答える