_USE_32BIT_TIME_T等效于gcc

App*_*per 4 gcc time-t

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

Lau*_*nis 7

time_t类型不是由gcc定义的,而是由系统库定义的.在Linux上,这是glibc,它time_ttime.h头文件中定义:

typedef __time_t time_t;
Run Code Online (Sandbox Code Playgroud)

其中定义bits/types.h如下:

__STD_TYPE __TIME_T_TYPE __time_t;
Run Code Online (Sandbox Code Playgroud)

(__STD_TYPE定义不是很有趣),

__TIME_T_TYPE定义bits/typesizes.h如下:

#define __TIME_T_TYPE __SLONGWORD_TYPE
Run Code Online (Sandbox Code Playgroud)

其中定义bits/types.h如下:

#define __SLONGWORD_TYPE long int
Run Code Online (Sandbox Code Playgroud)

32位系统为32位,64位系统为64位.所有这些定义都是无条件的,因此,_USE_32BIT_TIME_Tglibc上没有相应的定义.