在C语言中,stddef.h
头文件定义了一些变量类型和宏,这些定义对于许多C程序都是非常有用的。让我们一起来了解这些定义。
库变量
ptrdiff_t
ptrdiff_t
是一种有符号整数类型,用于表示两个指针相减的结果。
size_t
size_t
是一种无符号整数类型,通常用于表示对象的大小,是 sizeof
关键字的结果。
wchar_t
wchar_t
是一种整数类型,其大小与宽字符常量的大小相匹配。
库宏
NULL
NULL
是一个空指针常量的值。在许多情况下,它被用作指针的默认初始值。
offsetof(type, member-designator)
offsetof
宏生成一个类型为 size_t
的整型常量,表示一个结构成员相对于结构开头的字节偏移量。member-designator
指定了成员,type
指定了结构的名称。
下面是一个示例,演示了如何使用 offsetof
宏:
#include <stdio.h> #include <stddef.h> struct Example { int a; double b; char c; }; int main() { size_t offset = offsetof(struct Example, b); printf("Offset of member 'b': %zu bytes\n", offset); return 0; }
这个示例中,offsetof(struct Example, b)
返回成员 b
相对于结构 Example
开头的字节偏移量。