size_t,key_t,time_t等

Pwn*_*Pwn 4 c linux

我在c程序中多次遇到过这些"X_t"类型,它们的真正含义是什么?这些定义的位置在哪里?

Ada*_*eld 16

所述_t后缀的意思是"类型"; 它不是必须使用它的规则,它只是一个约定,后面是标准库中的许多标准类型.它们通常在使用它们的头文件中定义,或者有时在这些头文件包含的头文件中定义.

size_t定义于<stddef.h>,并time_t在中定义<time.h>. key_t不是标准的C类型,因此它可能在库头中为其使用的任何库定义.

如果要确切知道定义来自哪个头文件,可以运行预处理器:

gcc -E file.c -o file.i
Run Code Online (Sandbox Code Playgroud)

预处理器输出file.i将显示所有嵌套的包含文件.然后,您可以在其中搜索定义,然后向上滚动,直到找到指示它来自哪个头文件的注释.