在标准c库中是否有verify()
函数(例如msvc中的VERIFY()
)或类似函数,还是我必须编写自己的函数?如果是这样,它在哪个标题下?
编辑:断言和验证之间的区别在于验证仍然会在发布版本中执行该函数,而assert中的语句不会在发布版本中编译。
即
assert( printf("assert ") );
verify( printf("verify") );
调试中的将打印"assert verify"
,但在发布中将打印"verify"
。
答案 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中定义的断言宏