在 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 回答