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

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#define SAFE_DELETE(p) { delete (p); (p) = NULL; }

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

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-07-02 16:57:04

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

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

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

复制
相关文章
为什么很多 ISP 仍然使用 IS-IS 而不是 OSPF?
来源:网络技术联盟站 链接:https://www.wljslmz.cn/18802.html
网络技术联盟站
2023/03/05
1.3K0
为什么很多 ISP 仍然使用 IS-IS 而不是 OSPF?
为什么 C 语言仍然占据统治地位?
没有什么技术可以应用长达50年之久,除非它真的比大多数其他东西都要好用——对于一种计算机行业的技术来说尤其如此。自1972年诞生以来,C语言一直保持生龙活虎的状态,时至今日它仍然是我们用来搭建软件世界的基础建筑材料之一。
Python猫
2019/07/08
5820
为什么.NET Standard 仍然有意义?
.NET Standard 是.NET 官方的API规范,可在许多.NET环境中使用。之所以存在,面向.NET Standard 2.0的库提供了最大可能的覆盖范围,并启用了几乎所有现代的.NET功能,例如C#9,IAsyncEnumerable等,因此所有库都应针对该平台。
全球技术精选
2021/01/21
5400
为什么.NET Standard 仍然有意义?
为什么C语言仍然占据统治地位?
导读:C语言五十年来一直是软件开发的一种主力语言。本文介绍它在如今的2019年与C++,Java,C#,Go,Rust和Python抗衡的方式。
IT阅读排行榜
2019/07/30
1.2K0
为什么有的SEO旧方法仍然有效?
我们知道这一个信息快速流动的时代,特别是新媒体平台快速的发展,使得SEO行业,面临巨大的挑战,大量的SEO人员开始杞人忧天。
蝙蝠侠IT
2021/06/07
3490
为什么有的SEO旧方法仍然有效?
程序员为什么要使用Markdown
我自从使用了markdown之后,就喜欢了写文档,记录工作日志,记录周会,记录季度计划,记录学习目标,写各种设计文档。
代码随想录
2020/06/12
1.4K0
java程序员为什么使用Groovy?
一直听说java世界里有个Groovy,但是一直没时间去了解它究竟是一个怎么样子的。我们现在的项目里放了很多开源包,而且项目中做流程的时候,规则就是用Groovy实现的。近来闲来无事,于是开始认真的看看Groory究竟有什么好的。其实最初我接触它是因为Grails这一个框架,这两个都是为了实现一个目的,java的敏捷开发,与java的无缝对接。在某些情况下,java需要半天处理的事情,Groovy只需要几分钟,是的,几分钟…剩下来的时间,程序员终于有时间泡妹子了,^_^…….技术宅的兄弟,赶紧来看看吧。
秃顶的Java程序员
2020/04/01
1.9K0
2021年了,为什么约会软件算法仍然如此糟糕?
但随着社会的再次放开,仍然有越来越多的单身人士选择线上软件。根据Hinge报告,2019年以来,下载量增长63%,2020年的收入增长了两倍,而仅2021年5月就超过6.5百万人下载Tinder。
大数据文摘
2021/07/06
6300
设置好了conda镜像为什么仍然是有CondaHTTPError
管理员让他简单的修改了前面的命令, 就是删除 -c bioconda ,命令如下所示:
生信技能树
2022/12/16
4850
为什么房屋和汽车仍然以老式的方式建造?
这个话题是那些让我发疯的事情之一。我们可以建造能够抵抗飓风、地震、洪水以及其他自然和人为灾害的房屋。我们可以制造更轻、更省油的汽车。
用户8054111
2020/12/20
3720
图灵奖得主Barbara Liskov:为什么编程仍然很重要
编者按:近日,英国科技网站The Register对麻省理工学院教授Barbara Liskov进行了采访。Barbara于2009年因其对编程语言和系统设计的贡献而获得图灵奖,在本次采访中,Barbara结回顾了其在70年代创建CLU编程语言早期工作,并发表了一些关于CLU编程语言的最新见解。 在即将开幕的CNCC2021(中国计算机大会)上,Barbara也将作为特邀嘉宾发表演讲,为帮助参会者更好了解Barbara的最新研究及对编程理念的思考,AI科技评论特此对The Register的文章进行了编译。
AI科技评论
2021/10/11
3700
图灵奖得主Barbara Liskov:为什么编程仍然很重要
为什么mmap之后访问地址仍然发生了缺页异常?
作者简介: viho he,ARM64专家,现供职于某芯片公司,专注于Linux内核、BSP、ARM64虚拟化以及与ARM64 SoC相关的各种底软技术 问题简述 在笔者的开发平台上,应用程序使用ION申请cma内存,并用mmap映射到用户地址空间去做写操作。 重点代码摘要如下: 客户希望提高 node->var = some_value; 这里的访问效率(实际代码要复杂些,是申请了一个大数组并往里循环读写数据)。 第一轮分析 首先用perf分析应用程序行为,发现程序在运行时产生了不少page fault
刘盼
2022/09/22
1.5K0
为什么mmap之后访问地址仍然发生了缺页异常?
为什么在 20 多年后,我仍然爱着 PHP 和 JavaScript
作者 | mmlmml 译者 | 马可薇 策划 | 李冬梅 二十多年过去了,仍然有很多人对 PHP 和 JavaScript 情有独钟。 在过去的二十年间,从 C 到 Common Lisp,从 Java 到 Python,从 C++ 到 TypeScript,我在工作中用过十多种编程语言,但我却偏偏对那些质量堪忧的语言情有独钟。 为什么说质量堪忧?因为 PHP 和 JavaScript 让人诟病的地方确实不少:PHP 是一门类型松散的语言,所以经常孕育出糟糕的代码, JavaScript 和 N
深度学习与Python
2023/03/29
6190
为什么在 20 多年后,我仍然爱着 PHP 和 JavaScript
为什么博客,仍然是SEO从业者的首选?
在互联网发展的长河中,总是会遇到各种新鲜的事物,比如:2020年的网红直播,短视频营销,新媒体运营等,但对于搜索引擎而言,特别是百度SEO,我们可能认为博客已经是一个“古董”对于企业运营而言,没有任何作用,但事实真的如此吗。
蝙蝠侠IT
2021/09/07
3520
为什么有的程序员不推荐使用Lombok!
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。
Java3y
2020/02/24
18.5K5
戴若犁:2023年了,我们为什么仍然需要 Metaverse?
2023年1月9日,诺亦腾科技联合创始人&CTO戴若犁博士在“腾讯科技向善创新周2023”大会上发表了演讲,题为《为什么我们仍然需要Metaverse?》。 以下为戴若犁博士的演讲全文: 很高兴今天有机会和大家聊几个话题:Metaverse(元宇宙)、AR/VR、AIGC(AI生成内容),以及科技向善。 为了准备今天的演讲,我查阅了过去十年我参与的一些活动、一些讨论以及在互联网上的一些留痕。非常有意思,现在看起来都是历史,而当年我们都在谈论未来。 2013年,我在线上社区回答过一个问题:AR/VR领域最需要
AI科技评论
2023/02/23
3030
戴若犁:2023年了,我们为什么仍然需要 Metaverse?
C++巧用do...while(0)
在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性 
阳光岛主
2019/02/19
8430
为什么 C++ 程序员要避免使用 new
我看到一个问题 – Memory leak with std::string when using std::list< std::string >,其中的一个 回答 表述 C++ 程序员应尽量避免使用 new。
ClearSeve
2022/02/10
8940
为什么大多数公司仍然饱受SOC人员短缺的痛苦
根据Exabeam的调查,绝大多数人觉得SOC的威胁检测能力很可靠,但组织并没有因为此而变得更安全。技术上向 SOAR 发展,而人员短缺的情况也要得到重视。
FB客服
2020/07/09
5560
为什么大多数公司仍然饱受SOC人员短缺的痛苦
在表格数据上,为什么基于树的模型仍然优于深度学习?
机器之心报道 机器之心编辑部 为什么基于树的机器学习方法,如 XGBoost 和随机森林在表格数据上优于深度学习?本文给出了这种现象背后的原因,他们选取了 45 个开放数据集,并定义了一个新基准,对基于树的模型和深度模型进行比较,总结出三点原因来解释这种现象。 深度学习在图像、语言甚至音频等领域取得了巨大的进步。然而,在处理表格数据上,深度学习却表现一般。由于表格数据具有特征不均匀、样本量小、极值较大等特点,因此很难找到相应的不变量。 基于树的模型不可微,不能与深度学习模块联合训练,因此创建特定于表格的深
机器之心
2022/08/25
1.1K0
在表格数据上,为什么基于树的模型仍然优于深度学习?

相似问题

集合:为什么矢量不再使用,但仍然存在?

10

为什么优秀的程序员被称为忍者?

60

为什么程序员想要将实现与接口分开?

30

为什么优秀的程序员有丑陋的网站?

230

为什么程序员使用` `Acme`‘作为包、名称空间或目录名?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文