<stddef.h> 是 C 语言标准库中的头文件,提供了一些通用的定义和宏,其中最为重要的是 NULL 和 size_t。

以下是 <stddef.h> 中的一些常用定义:

1. NULL
   - NULL 是一个空指针常量,通常用于表示指针不指向任何有效的对象或函数。

2. size_t
   - size_t 是一个无符号整数类型,用于表示对象的大小(字节数)。通常用于数组索引、内存分配函数等地方。

3. ptrdiff_t
   - ptrdiff_t 是一个有符号整数类型,用于表示两个指针之间的差值。

4. offsetof(type, member)
   - offsetof 宏用于计算结构体中成员的偏移量。type 是结构体类型,member 是结构体中的成员名。

以下是一个简单的例子,演示了 <stddef.h> 中的一些常用定义和宏的使用:
#include <stdio.h>
#include <stddef.h>

struct ExampleStruct {
    int x;
    char y;
    double z;
};

int main() {
    // 使用 NULL 表示空指针
    int *ptr = NULL;

    // 使用 size_t 表示对象大小
    size_t size_of_int = sizeof(int);
    printf("Size of int: %zu bytes\n", size_of_int);

    // 使用 offsetof 计算结构体成员的偏移量
    size_t offset_of_y = offsetof(struct ExampleStruct, y);
    printf("Offset of y in ExampleStruct: %zu bytes\n", offset_of_y);

    return 0;
}

在这个例子中,我们使用了 NULL 表示空指针,使用 size_t 表示对象大小,使用 offsetof 计算了结构体中成员的偏移量。这些定义和宏使得代码更加可移植和灵活。


转载请注明出处:http://www.pingtaimeng.com/article/detail/3209/C语言