社区
C++ 语言
帖子详情
debug版本中检测非法情况使用断言,在release版本中怎么办?
comdoc
2009-09-22 04:01:39
通常在debug版本中使用断言来避免程序中非法情况的出现,如空指针,非法参数等,但是在release版本中断言不起作用,那怎样才能保证程序(如函数)的健壮性呢?
看了一下标准C的memcpy函数,函数入口并没有对参数做检查,那如果传入空指针后程序崩溃,为什么要这样设计函数呢,干嘛不像debug版本一样检测一下输入参数呢?
...全文
89
6
打赏
收藏
debug版本中检测非法情况使用断言,在release版本中怎么办?
通常在debug版本中使用断言来避免程序中非法情况的出现,如空指针,非法参数等,但是在release版本中断言不起作用,那怎样才能保证程序(如函数)的健壮性呢? 看了一下标准C的memcpy函数,函数入口并没有对参数做检查,那如果传入空指针后程序崩溃,为什么要这样设计函数呢,干嘛不像debug版本一样检测一下输入参数呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zgjxwl
2009-09-22
打赏
举报
回复
memcpy好像有替换的安全性更高的版本了吧
taodm
2009-09-22
打赏
举报
回复
楼主给个“断言”的定义吧。
candeabc123
2009-09-22
打赏
举报
回复
只是为了调试方便 和提高程序健壮性
楼主不要太过于探究这种东西
如果你想使用memcpy函数 那你就应该确保参数的有效性啊 因为没有结果的返回啊 出错了怎么告诉你 ?
老邓
2009-09-22
打赏
举报
回复
异常!
kouwenlong
2009-09-22
打赏
举报
回复
也可看通过抛出异常,来检查错误的.
fbmsyu
2009-09-22
打赏
举报
回复
提高性能!如果什么都检查,那c/c++就慢的要死了.
Tensorflow物体
检测
Faster-Rcnn技术教程
在学习阶段我们选择了深度学习框架tensorflow
版本
进行解读,在代码层面tensorflow版完全是caffe
版本
的复现,大家只需选择自己需要学习的框架对应的代码即可,逐行进行
debug
操作,再配合上论文,这样才能更好的学习...
编码笔记,
断言
,程序
版本
,
debug
和
release
程序一般分为
debug
版本
和
release
版本
,
debug
版本
用于内部调试,
release
版本
用于发行给用户
使用
。
断言
assert时只在
debug
版本
中
起作用的宏,用于检查“不应该”发生的状况,运行
中
assert的参数如果为假,程序就会终止...
Debug
与
Release
版本
的区别详解
Debug
和
Release
并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把
Debug
...
Debug
版本
包括调试信息,所以要比
Release
版本
大很多(可...
Release
和
Debug
版本
的区别
而且
Release
版本
进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地
使用
。二、
Debug
下生成的Exe文件在单独运行时需要编译器提供的一些库文件的支持,
Release
则是不需要的 。...
Debug
版本
和
Release
版本
区别及
ReLease
版调试
Release
称为发布
版本
,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地
使用
。
Debug
和
Release
的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外...
C++ 语言
64,281
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章