`
jiagou
  • 浏览: 2534644 次
文章分类
社区版块
存档分类
最新评论

[C++基础]assert断言

 
阅读更多

#include <windows.h> 
//#define NDEBUG
#include <assert.h>
int main()
{
	int n=9;
	assert(n!=9);//assert()括号中的表达式if true则不会出现端断言错误,assertion failed 
	system("pause");
	return 0;
}


void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
已放弃使用assert()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用
作用与意义:在函数开始处检验传入参数的合法性,在可能出错的地方使用

分享到:
评论

相关推荐

    深入探讨C++中的引用和ASSERT断言

    深入探讨C++中的引用和ASSERT断言,对引用和断言的理解会有很大的帮助

    业务异常提示处理 springboot+Assert(自定义断言)

    使用springboot框架快速搭建,封装自定义断言做业务校验,公共异常处理打印日志, 更简单的业务判断处理

    详解C++编程中断言static_assert的使用

    主要介绍了C++编程中断言static_assert的使用,断言在debug时非常有用,是C++入门学习中的基础知识,需要的朋友可以参考下

    C++ Assert()断言机制原理以及使用方法

    下面小编就为大家带来一篇C++ Assert()断言机制原理以及使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    函数重载、assert断言1

    1. 函数名相同 2. 参数的类型不同或参数的个数不同或参数的顺序不同 3. 不考虑返回值与调用约定 4. 同作用域的函数 1. 查找候选函数,查找所有指定名称

    C语言断言assert的用法.pdf

    C语言断言assert的用法.pdf

    debug_assert, 简单灵活和模块化断言宏.zip

    debug_assert, 简单灵活和模块化断言宏 debug_assert debug_assert是只提供一个非常灵活的DEBUG_ASSERT() 宏的简单。C++11.头库。 你自己写了多少次断言宏,因为 assert() 是全局控制的,不能在程序的某些部分启用?...

    Java陷阱之assert关键字

     在C和C++语言中都有assert关键,表示断言。  在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。  二、语法  在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中...

    深入理解C++11:C++11新特性解析与应用

    252.4 宏__cplusplus 262.5 静态断言 272.5.1 断言:运行时与预处理时 272.5.2 静态断言与static_assert 282.6 noexcept修饰符与noexcept操作符 322.7 快速初始化成员变量 362.8 非静态成员的sizeof 392.9 扩展的...

    Chamois:用于 C++ 单元测试的 Fluent 断言库

    Chamois - C++ 的流畅断言 Chamois 是 C++11 的仅标头流利断言库,旨在通过提供自然语言语法来促进 TDD 和 BDD。 Chamois 的灵感来自于出色的 for .NET。 在 Chamois 中表达测试的主要方式是以下形式: Chamois::...

    PPK_ASSERT:PPK_ASSERT是一个跨平台的,自包含的C ++断言库

    PPK_ASSERT:PPK_ASSERT是一个跨平台的,自包含的C ++断言库

    Visual C++2010开发权威指南(共三部分).part1.rar

    1.8.3 静态断言static_assert 17 1.8.4 auto关键字 18 1.8.5 右值引用 19 1.8.6 安全数据类型 22 1.8.7 移动构造 23 1.9 支持开发并行程序 26 1.9.1 运行库支持native代码 26 1.9.2 调试和分析工具 29 1.10 对MFC的...

    Visual C++2010开发权威指南.part01

    1.8.3 静态断言static_assert 17 1.8.4 auto关键字 18 1.8.5 右值引用 19 1.8.6 安全数据类型 22 1.8.7 移动构造 23 1.9 支持开发并行程序 26 1.9.1 运行库支持native代码 26 1.9.2 调试和分析工具 29 1.10 对MFC的...

    linux中常用C和C++一些头文件的作用

    linux中常用C/C++一些头文件的作用 1、 一些头文件的作用: ...提供断言,assert(表达式) #include &lt;glib.h&gt;:GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含(#include )

    debug_assert:简单,灵活和模块化的声明宏

    您自己写了一个断言宏多少次,因为assert()是全局控制的,并且不能仅对程序的某些部分启用? 该库通过提供灵活的模块化声明宏解决了该问题。 特征 没有依赖关系。 它仅需要std::abort()和-除非定义了DEBUG_ASSERT_...

    c/C++面试题大全--96页

    如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分;  对试题3,if(strlen(str1) )应改为if(strlen...

    LINUX下编译与调试

    3.3. assert断言宏 12 3.4. 错误处理函数和进程退出函数 13 3.5. 系统日志 15 ...... ...... 1. gcc/g++编译器 对于.c格式的C文件,可以采用gcc或g++编译 对于 .cc、.cpp格式的C++文件,应该采用g++进行编译 常用的...

Global site tag (gtag.js) - Google Analytics