【问题标题】:_USE_32BIT_TIME_T equivalent for gcc_USE_32BIT_TIME_T 等效于 gcc
【发布时间】:2011-02-07 14:09:31
【问题描述】:

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

【问题讨论】:

    标签: gcc time-t


    【解决方案1】:

    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_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 等价物。

    【讨论】:

    • 所以只要我在 32 位平台上编译应该没问题。 Mac 上的 gcc 有什么信息吗?
    • @SnapConfig.com 你可以像在 Linux 上一样检查 Mac 头文件
    猜你喜欢
    • 2012-01-12
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多