c - 何时决定使用 typedef 的数据类型或 C 的内置标准数据类型

标签 c typedef

海湾合作委员会 4.7.2 c89

你好,

我正在使用 Apache Portable Runtime 并查看他们的 typedef

typedef short apr_int16_t
typedef int apr_int16_t
typedef size_t apr_size_t /* This is basically the same, so what's the point */

等等

  1. 那么这一切的意义何在?
  2. 您应何时决定使用 C 的内置标准数据类型或 typedef 的数据类型?

我只是举了一个使用 APR 的例子。但是,我也一般来说。还有typedef的数据类型的stdint.h头文件。

非常感谢您的任何建议,

最佳答案

在我看来,最好为系统的 native 数据类型自定义数据类型,因为它有助于清楚地区分类型的大小。

例如:long 可能是 32 位或 64 位,具体取决于运行代码的机器及其构建方式。但是,如果您的代码特别需要一个 64 位变量,那么将其命名为 uint_64_t 或类似名称总是有助于清楚地关联大小。

在这种情况下,代码写成:

    #if _64BIT_
    typedef long uint_64_t
    #else
    typedef long long uint_64_t
    #endif

但正如 Mehrdad 所建议的那样,不要“只是为了好玩”而使用它。 :)

关于c - 何时决定使用 typedef 的数据类型或 C 的内置标准数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13639427/

相关文章:

c - 整数除法的行为是什么?

c++ - SWIG:公共(public)函数中使用的私有(private) typedef

c++ - 在实现文件中使用 typedef 来缩短类型签名的负面后果是什么?

c++ - 如何将 N 个通用参数传递给 typedef 函数指针?

c - 使用带有类型 def 结构变量的条件语句时遇到问题

visual-c++ - C++语法错误: missing ';' before 'constant'

c - 让 Xcode 告诉编译器不要链接到任何库,包括标准库?

关于结构项目的困惑

C指针查询

java - OpenCV 如何检测网络摄像头并比较本地文件以匹配人脸