C 库 - assert() 宏



C 的assert库的assert()宏用于错误处理,以检查程序运行时做出的任何假设是否正确。它用于在开发阶段本身捕获程序中的逻辑错误。

语法

以下是assert()宏的 C 库语法 -

void assert(int expression);

参数

此宏接受一个参数 -

  • 表达式 - 它是一个条件语句,其结果为真或假。如果表达式的结果为假 (0),则 assert() 函数会触发断言失败,导致程序终止。

返回值

此宏不返回值。如果断言失败(表达式结果为假),它会触发错误消息并中止程序执行。

示例 1:检查简单表达式

在此示例中,assert() 检查变量 x 是否等于 5。如果条件为真,则程序成功执行并打印“断言通过!”。如果它不为真,则程序将中止并打印诊断消息。

#include <stdio.h>
#include <assert.h>

int main() {
   int x = 5;
   assert(x == 5);
   printf("Assertion passed!\n");
   return 0;
}

输出

以上代码产生以下结果 -

Assertion passed!

示例 2:检查逻辑表达式

在此示例中,assert() 检查变量 a 和 b 的和是否大于 5。由于总和等于 8,大于 5,因此条件为真。但是,如果条件结果为假,则会显示错误消息。

#include <stdio.h>
#include <assert.h>
int main() {
   int a = 5, b = 3;
   assert((a + b) > 5 && "Sum is not greater than 5");
   printf("Assertion passed!\n");
   return 0;
}

输出

以上代码产生以下结果 -

Assertion passed!
广告