在Visual Studio上,我可以通过声明_USE_32BIT_TIME_T来强制使用32位time_t。是否有与gcc类似的等价物?还是总是32位还是总是64位
_USE_32BIT_TIME_T
time_t
oyt4ldly1#
time_t类型不是由gcc定义的,而是由系统库定义的。在Linux上,这是glibc,它在time.h头文件中定义了time_t:
time.h
typedef __time_t time_t;
字符串它又被定义为bits/types.h:
bits/types.h
__STD_TYPE __TIME_T_TYPE __time_t;
型(__STD_TYPE定义不感兴趣),__TIME_T_TYPE在bits/typesizes.h中定义为:
__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等价物。
1条答案
按热度按时间oyt4ldly1#
time_t
类型不是由gcc定义的,而是由系统库定义的。在Linux上,这是glibc,它在time.h
头文件中定义了time_t
:字符串
它又被定义为
bits/types.h
:型
(
__STD_TYPE
定义不感兴趣),__TIME_T_TYPE
在bits/typesizes.h
中定义为:型
它又在
bits/types.h
中定义:型
在32位系统上是32位,在64位系统上是64位。所有这些定义都是无条件的,所以在glibc上没有
_USE_32BIT_TIME_T
等价物。