c - C 中的断言关键字

标签 c keyword

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

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

最佳答案

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

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

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 宏在编译时禁用断言。 因此,例如,如果您依赖它作为先决条件,您可能希望通过无条件构建的测试将其加倍。

关于c - C 中的断言关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55402663/

相关文章:

android - 使用 Android NDK 为 x86 编译 FFmpeg 3.1.1

c - 静态在 ANSI-C 中是什么意思

sql - 等同于 SQL Server TOP

c++ - break 和 exit 有什么区别?

c - 从函数返回字符串时遇到问题

c - 如何将 .h 文件中的外部符号验证为 .c 文件?

将一个文件的内容反向复制到另一个文件中

java - 如何在java中引用外部文件的关键字

C#内存管理: unsafe keyword and pointers

ruby - 从用户提交的文本中提取关键字的好方法是什么?