c标准库中是否有验证函数?
标准c库中是否有c标准库中是否有验证函数?,c,standard-library,C,Standard Library,标准c库中是否有verify()函数(例如在msvc中)或类似函数,或者我必须自己编写?如果是,它在哪个标题下 Edit:assert和verify之间的区别在于verify仍然会在发布版本中执行函数,而assert中的语句不会在发布版本中编译 即 在调试中,将打印“断言验证”,但在发行版中,将打印可用于单元测试的“验证”。它是旧的JUnit Java库的C端口 稍后编辑:似乎有一个我不知道的类似宏。可以用于单元测试。它是旧的JUnit Java库的C端口 稍后编辑:似乎有一个我不知道的类似宏。
verify()
函数(例如在msvc中)或类似函数,或者我必须自己编写?如果是,它在哪个标题下
Edit:assert和verify之间的区别在于verify仍然会在发布版本中执行函数,而assert中的语句不会在发布版本中编译
即
在调试中,将打印“断言验证”,但在发行版中,将打印可用于单元测试的“验证”。它是旧的JUnit Java库的C端口
稍后编辑:似乎有一个我不知道的类似宏。可以用于单元测试。它是旧的JUnit Java库的C端口
稍后编辑:似乎有一个我不知道的类似宏。您可以使用assert.h中定义的assert宏。您可以使用assert.h中定义的assert宏。在运行时,C在
assert.h
中有assert
宏
在编译时,C(从C11开始)在assert.h
中有static\u assert
宏
有关详细信息,对于
static\u assert
,一些C89/C99编译器还将其作为编译器扩展。例如,IAR编译器在运行时在intrinsics.h
中有static\u assert
函数,C在assert.h
中有assert
宏
在编译时,C(从C11开始)在assert.h
中有static\u assert
宏
有关详细信息,对于
static\u assert
,一些C89/C99编译器还将其作为编译器扩展。例如,IAR编译器在intrinsics中有static\u assert
函数。h
澄清了我的问题,我不是在寻找assert@yuumei但是assert
的工作原理类似于MS文档中的verify
。在Cassert
中,仅当未定义NDEBUG
宏时,assert才会执行其工作。澄清了我的问题,我不寻找assert@yuumei但是assert
的工作原理类似于MS文档中的verify
。在Cassert
中,仅当未定义NDEBUG
宏时,assert才会执行其工作。在发布版本中是否启用assert完全取决于您自己-这由NDEBUG
宏控制。我明白了,答案是否定的,这只是微软的事情。如果你更喜欢用微软的方式做事,那么你可以使用例如gcc-DVERIFY=assert…
进行编译,但最好是可移植的,只在代码中使用assert
。是否在发布版本中启用assert完全取决于你自己——这由NDEBUG
macro。我明白了,答案是否定的,这只是微软的事情。如果你喜欢用微软的方式做事,那么你可以用诸如gcc-DVERIFY=assert…
之类的工具进行编译,但最好是可移植的,在代码中使用assert
。
assert( printf("assert ") );
verify( printf("verify") );