| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1933 人关注过本帖
标题:关于assert
取消只看楼主 加入收藏
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
关于assert
目前我没有能力阅读此函数源代码,从网上的贴子得知其函数原型为:
void assert(int expression);
该函数的作用是:计算表达式expression的值,如果值不为0,什么也不做;如果值为0,先向stderr打印一条出错信息,然后通过调用abort来终止程序运行,并显示一个对话框,其标题为“Microsoft Visual C++ Debug Library”。
我想问的是:其标题为“Microsoft Visual C++ Debug Library”的对话框,它的调用语句在什么位置,是在abort函数内,还是在abort函数外但在assert函数内。
搜索更多相关主题的帖子: expression Microsoft 源代码 对话框 表达式 
2016-09-12 14:19
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
通过阅读得知:
cassert文件中有:
#ifdef NDEBUG
#define assert(condition) ((void)0)
#else
 #define assert(condition) /*implementation defined*/
#endif
所以下面的程序:
#include
// uncomment to disable assert()
#define NDEBUG
#include <cassert>
int main()
{
    assert(2+2==4);
    std::cout << "Execution continues past the first assert\n";
    assert(2+2==5);
    std::cout << "Execution continues past the second assert\n";
}
等价于:
#include
// uncomment to disable assert()
#define NDEBUG
#include <cassert>
int main()
{
    ((void)0);//等价于;
    std::cout << "Execution continues past the first assert\n";
    ((void)0);//等价于;
    std::cout << "Execution continues past the second assert\n";
}


[此贴子已经被作者于2016-9-12 19:33编辑过]


我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-09-12 19:17
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
condition是expression of scalar type,即它是一个表达式,表达式的值的数据类型是任何基本数据类型.
assert(condition)是个带参宏
我只能理解这些。


[此贴子已经被作者于2016-9-12 19:31编辑过]


我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-09-12 19:29
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
condition是expression of scalar type,即它是一个表达式,表达式的值的数据类型是任何基本数据类型.
 assert(condition)是个带参宏
 我只能理解这些。

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-09-12 19:31
快速回复:关于assert
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033530 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved