4

在 Visual Studio 上,我可以通过声明 _USE_32BIT_TIME_T 来强制使用 32 位 time_t,gcc 是否有类似的等价物?还是总是 32 位还是总是 64 位?

4

1 回答 1

7

time_t类型不是由 gcc 定义的,而是由系统库定义的。在 Linux 上,这是 glibc,它time_ttime.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 回答