c标准库中是否有验证功能?

时间:2012-06-14 10:33:49

标签: c standard-library

在标准c库中是否有verify()函数(例如msvc中的VERIFY())或类似函数,还是我必须编写自己的函数?如果是这样,它在哪个标题下?

编辑:断言和验证之间的区别在于验证仍然会在发布版本中执行该函数,而assert中的语句不会在发布版本中编译。

assert( printf("assert ") );

verify( printf("verify") );
调试中的

将打印"assert verify",但在发布中将打印"verify"

3 个答案:

答案 0 :(得分:4)

在运行时,C在assert中有assert.h宏。

在编译时,C(自C11起)在static_assert中有assert.h宏。

有关信息,对于static_assert,某些C89 / C99编译器也将其作为编译器扩展包括在内。例如,IAR编译器在static_assert中具有intrinsics.h函数。

答案 1 :(得分:0)

您可以使用CUnit进行单元测试。它是旧的JUnit Java库的C端口。

稍后编辑:似乎有一个我不知道的类似宏。

答案 2 :(得分:0)

您可以使用assert.h中定义的断言宏