面试题答案
一键面试assert()
宏的作用:assert()
宏用于在程序运行时进行调试性的断言。它接受一个表达式作为参数,如果该表达式的值为假(即false
或 0),assert()
宏会向标准错误流(stderr
)输出一条错误信息,并终止程序的执行。这有助于在开发阶段快速定位和发现程序中的逻辑错误,因为当断言失败时,程序会立即停止,方便开发者找到问题出现的位置。
- 通常使用场景:
- 参数验证:在函数入口处,用于验证传入函数的参数是否满足特定条件。例如,一个函数期望传入的指针不为
nullptr
,可以使用assert()
来验证。 - 内部一致性检查:在函数内部,用于检查程序状态是否符合预期。比如,某个变量在特定阶段应该处于某个取值范围,使用
assert()
确保其符合要求。
- 参数验证:在函数入口处,用于验证传入函数的参数是否满足特定条件。例如,一个函数期望传入的指针不为
- 在
divide
函数中使用assert()
确保除数b
不为零:
#include <cassert>
int divide(int a, int b) {
assert(b != 0);
return a / b;
}
在上述代码中,在 divide
函数内部,使用 assert(b != 0)
来确保除数 b
不为零。如果在运行时 b
为零,assert()
会触发,程序会输出错误信息并终止。