跳转到内容

C 编程/stddef.h

来自维基教科书,开放的书本,开放的世界

stddef.h 是 C 编程语言标准库中的一个头文件,它定义了宏 NULL 和 offsetof,以及类型 ptrdiff_t、wchar_t 和 size_t[1]

在 C 中,可以使用以下方式包含头文件 "stddef.h"

#include <stddef.h>

在 C++ 中,可以使用以下方式包含头文件 "cstddef"

#include <cstddef>

命名空间

[编辑 | 编辑源代码]

头文件 "stddef.h" 将其定义放在全局范围内;头文件 "cstddef" 将 size_tptrdiff_t 放在命名空间 std 中。

一个展开为 NULL 指针常量的宏。它可能根据编译器和语言定义为 ((void*)0)、0 或 0L。

offsetof(type, member)

[编辑 | 编辑源代码]

一个用于确定指定结构类型中指示成员字段的字节偏移量的函数宏。

类型 size_t

[编辑 | 编辑源代码]

类型 size_t 表示用于表示内存区域对象的大小和用于取消引用数组元素的适当类型。它的大小取决于实现;通常但在不必要的情况下,它在 32 位系统上具有 32 位表示,在 64 位系统上具有 64 位表示。它是无符号的。

此类型在某些实现中具有一个名为 ssize_t 的有符号变体,它在 UNIX 头文件 "unistd.h" 中定义。对于 GNU C,类型 ssize_t 在 "stddef.h" 中定义,因此它与 size_t 位于同一个文件中。

类型 wchar_t

[编辑 | 编辑源代码]

一种特定于实现的“宽字符”类型,它在 C++ 编程语言中是预定义的,但在 C 编程语言中需要头文件 "stddef.h" 或 "wchar.h"。

类型 ptrdiff_t

[编辑 | 编辑源代码]

类型 ptrdiff_t 是一种可以保存指向同一对象中两个项目的两个指针相减结果的类型。ptrdiff_t 的基础类型因实现而异。

一个对象可能大于 PTRDIFF_MAX。两个指针相减,其差值大于 PTRDIFF_MAX / PTRDIFF_MIN 会导致未定义的行为。

参考文献

[编辑 | 编辑源代码]
  1. http://pubs.opengroup.org/onlinepubs/7908799/xsh/stddef.h.html
[编辑 | 编辑源代码]
华夏公益教科书