c - 在 C 中断言关键字
问题描述
除了关键字“断言”的教科书定义之外,实际用例是什么?
它不是一个常用的关键字,因此很难找到解释实际实现及其在代码中的使用的示例
解决方案
您可以以任何您认为合适的方式使用它。就个人而言,当我不想依赖任何依赖项时,我用它来编写简单的单元测试。
有些人用它来检查前置条件和后置条件,例如:
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
但请注意,可以通过定义宏在编译时禁用断言。因此,例如,如果您依赖它作为前置条件,您可能希望通过无条件构建的测试将它们加倍。
推荐阅读
- bison - 解析野牛在第一行停止
- java - 如何在 FindCurrentPlaceResponse 中获取可以稍后单独选择的单个响应
- arrays - MATLAB:删除从循环收集的数组中的零点
- python - How to fill missing values using pandas?
- php - Laravel 电子邮件验证(技术上)如何工作?
- django - 在 Django 中使用原子事务处理模型的保存方法
- javascript - Node.js 快速删除 href 路由不起作用
- django - 如何在 django-widget-tweaks 的 render_field 标签中转义单引号?
- assembly - My Sign flag value is showing wrong? Am I wrong about how sign flag works?
- node.js - Mapping Ports with Azure Docker Containers