c标准库中是否有验证函数?

c标准库中是否有验证函数?,c,standard-library,C,Standard Library,标准c库中是否有verify()函数(例如在msvc中)或类似函数,或者我必须自己编写?如果是,它在哪个标题下 Edit:assert和verify之间的区别在于verify仍然会在发布版本中执行函数,而assert中的语句不会在发布版本中编译 即 在调试中,将打印“断言验证”,但在发行版中,将打印可用于单元测试的“验证”。它是旧的JUnit Java库的C端口 稍后编辑:似乎有一个我不知道的类似宏。可以用于单元测试。它是旧的JUnit Java库的C端口 稍后编辑:似乎有一个我不知道的类似宏。

标准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
。在C
assert
中,仅当未定义
NDEBUG
宏时,assert才会执行其工作。澄清了我的问题,我不寻找assert@yuumei但是
assert
的工作原理类似于MS文档中的
verify
。在C
assert
中,仅当未定义
NDEBUG
宏时,assert才会执行其工作。在发布版本中是否启用assert完全取决于您自己-这由
NDEBUG
宏控制。我明白了,答案是否定的,这只是微软的事情。如果你更喜欢用微软的方式做事,那么你可以使用例如
gcc-DVERIFY=assert…
进行编译,但最好是可移植的,只在代码中使用
assert
。是否在发布版本中启用assert完全取决于你自己——这由
NDEBUG
macro。我明白了,答案是否定的,这只是微软的事情。如果你喜欢用微软的方式做事,那么你可以用诸如
gcc-DVERIFY=assert…
之类的工具进行编译,但最好是可移植的,在代码中使用
assert
assert( printf("assert ") );

verify( printf("verify") );