_USE_32BIT_TIME_T 相当于 gcc

发布于 2024-08-29 06:12:22 字数 128 浏览 2 评论 0原文

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

On Visual studio I can force use of 32-bit time_t by declaring _USE_32BIT_TIME_T. Is there a similar equivalent for gcc? or is it always 32-bit or is it always 64-bit?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青衫负雪 2024-09-05 06:12:22

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

typedef __time_t time_t;

该标头又在 bits/types.h 中定义:

__STD_TYPE __TIME_T_TYPE __time_t;

__STD_TYPE 定义并不有趣),

__TIME_T_TYPEbits/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

The time_t type is not defined by gcc but rather by system library. On Linux, this is glibc, and it defines time_t in time.h header:

typedef __time_t time_t;

which is in turn defined in bits/types.h:

__STD_TYPE __TIME_T_TYPE __time_t;

(__STD_TYPE definition is not interesting),

__TIME_T_TYPE is defined in bits/typesizes.h:

#define __TIME_T_TYPE __SLONGWORD_TYPE

which is in turn defined in bits/types.h:

#define __SLONGWORD_TYPE long int

which is 32 bits on 32 bits system, 64 bits on 64 bits system. All these definitions are unconditional, so, no _USE_32BIT_TIME_T equivalent on glibc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文