C 中的断言关键字
Assert Keyword in C
关键字的教科书定义除外'assert'
实际用例是什么?
它不是一个常用的关键字,因此很少能找到解释实际实现及其在代码中使用的示例
您可以以任何您认为合适的方式使用它。
就个人而言,当我不想依赖任何依赖项时,我会用它来编写简单的单元测试。
有些人用它来检查前置条件和 post 条件,例如:
int foo(int a, int b) {
int result;
assert(a > 0 && a < 150);
assert(b > 20 && b < 1000);
// do something with a, b and store something in result
assert(result > -10 && result < 10);
return result;
}
但请注意,可以通过定义 NDEBUG
宏在编译时禁用断言。
因此,例如,如果您依赖它作为先决条件,您可能希望通过无条件构建的测试将它们加倍。
关键字的教科书定义除外'assert' 实际用例是什么?
它不是一个常用的关键字,因此很少能找到解释实际实现及其在代码中使用的示例
您可以以任何您认为合适的方式使用它。 就个人而言,当我不想依赖任何依赖项时,我会用它来编写简单的单元测试。
有些人用它来检查前置条件和 post 条件,例如:
int foo(int a, int b) {
int result;
assert(a > 0 && a < 150);
assert(b > 20 && b < 1000);
// do something with a, b and store something in result
assert(result > -10 && result < 10);
return result;
}
但请注意,可以通过定义 NDEBUG
宏在编译时禁用断言。
因此,例如,如果您依赖它作为先决条件,您可能希望通过无条件构建的测试将它们加倍。