我可以通过声明_USE_32BIT_TIME_T来强制使用32位time_t吗?gcc是否有类似的等价物?或者它总是32位还是总是64位?
答案 0 :(得分: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位。所有这些定义都是无条件的,因此,glibc上没有_USE_32BIT_TIME_T
等价物。