4

Visual Studio では、_USE_32BIT_TIME_T を宣言することで 32 ビットの time_t を強制的に使用できますが、gcc に同様のものはありますか? それとも常に32ビットですか、それとも常に64ビットですか?

4

1 に答える 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 に答える