首页 > 解决方案 > 在 C 中断言关键字

问题描述

除了关键字“断言”的教科书定义之外,实际用例是什么?

它不是一个常用的关键字,因此很难找到解释实际实现及其在代码中的使用的示例

标签: ckeyword

解决方案


您可以以任何您认为合适的方式使用它。就个人而言,当我不想依赖任何依赖项时,我用它来编写简单的单元测试。

有些人用它来检查前置条件和后置条件,例如:

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但请注意,可以通过定义宏在编译时禁用断言。因此,例如,如果您依赖它作为前置条件,您可能希望通过无条件构建的测试将它们加倍。


推荐阅读