首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么程序员仍然使用"SAFE_DELETE"?

为什么程序员仍然使用"SAFE_DELETE"?
EN

Software Engineering用户
提问于 2014-07-03 00:01:36
回答 1查看 3.2K关注 0票数 3

如果每次看到这个宏在使用时,我都有一毛钱,那么今天我只是为了好玩而编写代码:

代码语言:javascript
运行
复制
#define SAFE_DELETE(p) if ((p) != NULL) { delete (p); (p) = NULL; }

为什么程序员坚持在delete检查空值时继续使用这个宏?是因为它在末尾将指针设置为null?那么,为什么不至少重写它并删除多余的检查:

代码语言:javascript
运行
复制
#define SAFE_DELETE(p) { delete (p); (p) = NULL; }

尽管如此,这似乎不是一个好的做法。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-07-03 00:57:04

让我这样说。这看起来像是C++会做的事情吗?C++充满了陷阱和未定义的行为,但是在这个实例中,它可以帮助您验证一个参数吗?如果您尝试使用空指针执行任何操作,那么您所熟悉的每一种“更安全”的语言都会抛出一个异常,但是您使用的最不安全的语言只会干净地处理它吗?这不是自我一致的。人们采用安全的方法,因为在几乎所有其他情况下,C++都迫使程序员采取安全的方法。换句话说,在C++代码中,“带来您自己的验证”是惯用和习惯性的。它失踪的时候看起来不太对劲。

票数 12
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/246729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档