小编典典

_t(下划线-t)后跟的类型代表什么?

all

这似乎是一个简单的问题,但我无法通过 Stack Overflow 搜索或 Google 找到它。一个类型后跟一个_t意思是什么?如

int_t anInt;

我在 C 代码中看到了很多旨在密切处理硬件的情况——不禁认为它们是相关的。


阅读 214

收藏
2022-04-15

共1个答案

小编典典

正如 Douglas Mayle 所指出的,它基本上表示一个类型名称。因此,不建议您使用 ‘ _t
结束变量或函数名称,因为这可能会引起一些混乱。此外size_t,C89
标准还定义了wchar_toff_tptrdiff_t,可能还有一些我已经忘记的其他内容。C99
标准定义了很多额外的类型,例如uintptr_t, intmax_t, int8_t, uint_least16_t,
uint_fast32_t,
等等。这些新类型是正式定义的,<stdint.h>但大多数情况下您会使用<inttypes.h>which(通常用于标准 C
头文件)包括<stdint.h>. 它 ( <inttypes.h>) 还定义了与printf()and一起使用的宏scanf()

正如 Matt Curtis 所指出的,后缀中的编译器没有意义;这是一个以人为本的公约。

但是,您还应该注意,POSIX定义了许多以 ‘ ‘
结尾的额外类型名称_t,并为实现 保留了后缀 。这意味着,如果您正在使用与 POSIX
相关的系统,那么使用约定定义您自己的类型名称是不明智的。我工作的系统已经做到了(超过 20 年);我们经常被定义与我们定义的名称相同的类型的系统绊倒。

2022-04-15