<assert.h> 是 C 语言标准库中的一个头文件,用于提供断言宏(assert macro),主要用于在程序中插入调试用的断言。当一个断言失败时,它会输出一条错误消息并终止程序的执行。

以下是 <assert.h> 中常用的宏和函数:

1. assert(expression)
   - 宏用于检查表达式 expression 是否为真(非零)。如果 expression 的值为假(零),assert 将输出一条错误消息到标准错误流并终止程序执行。

例如:
#include <stdio.h>
#include <assert.h>

int main() {
    int x = 5;

    assert(x == 5);  // 如果 x 不等于 5,程序将终止并输出错误消息

    printf("Assertion passed!\n");

    return 0;
}

在上面的例子中,如果 x 不等于 5,assert 将触发并输出错误消息,程序终止。

请注意,assert 宏通常在调试时使用,可以通过在编译时使用 -DNDEBUG 宏定义来禁用。如果定义了 NDEBUG,assert 宏将不会执行,这对于发布版本是有利的,以避免在生产环境中因为断言而终止程序。

此外, <assert.h> 中还定义了 static_assert 宏,该宏用于在编译时检查表达式的真假。不同于 assert,static_assert 是在编译时而不是运行时进行检查的。
#include <assert.h>

static_assert(sizeof(int) == 4, "int must be 4 bytes");  // 编译时检查 int 是否为 4 字节

这只是 <assert.h> 头文件的一部分功能,你可以在相关的文档或参考手册中找到更详细的信息。


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