assert.h标准库提供的常用宏定义及其用法详解

分类:知识百科 日期: 点击:0

assert.h标准库提供了一些常用的宏定义,它们可以用来验证程序的正确性,以及在发生错误时打印出错误信息。

assert宏定义

assert宏定义用于验证程序的正确性,如果表达式的值为假,则程序会报错。它的一般形式为:

assert(expression);

如果表达式的值为真,则程序继续执行;如果表达式的值为假,则程序会报错,并打印出错误信息。

NDEBUG宏定义

NDEBUG宏定义用于关闭assert宏定义的功能,它的一般形式为:

#define NDEBUG

一旦定义了NDEBUG宏定义,assert宏定义就失效,程序不会报错,即使表达式的值为假也不会报错。

_ASSERTE宏定义

_ASSERTE宏定义与assert宏定义的功能基本相同,它的一般形式为:

_ASSERTE(expression);

与assert宏定义不同的是,_ASSERTE宏定义不受NDEBUG宏定义的影响,即使定义了NDEBUG宏定义,_ASSERTE宏定义也会检查表达式的值,如果表达式的值为假,则程序会报错,并打印出错误信息。

_ASSERTE_EXPR宏定义

_ASSERTE_EXPR宏定义与assert宏定义的功能基本相同,它的一般形式为:

_ASSERTE_EXPR(expression, message);

与assert宏定义不同的是,_ASSERTE_EXPR宏定义可以在报错时打印出自定义的错误信息,如果表达式的值为假,则程序会报错,并打印出message参数指定的错误信息。

VERIFY宏定义

VERIFY宏定义与assert宏定义的功能基本相同,它的一般形式为:

VERIFY(expression);

与assert宏定义不同的是,VERIFY宏定义不受NDEBUG宏定义的影响,即使定义了NDEBUG宏定义,VERIFY宏定义也会检查表达式的值,如果表达式的值为假,则程序会报错,并打印出错误信息。

VERIFY_EXPR宏定义

VERIFY_EXPR宏定义与assert宏定义的功能基本相同,它的一般形式为:

VERIFY_EXPR(expression, message);

与assert宏定义不同的是,VERIFY_EXPR宏定义可以在报错时打印出自定义的错误信息,如果表达式的值为假,则程序会报错,并打印出message参数指定的错误信息。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。