首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带括号的if语句会更快吗?

问不带括号的if语句会更快吗?
EN

Stack Overflow用户
提问于 2014-03-22 22:28:11
回答 3查看 682关注 0票数 1

最近,我为一家使用C(和C++)编写自己语言的公司做了代码测试。我对他们发送给我的没有方括号的代码中的if语句感到有些震惊。起初,我只是认为他们是黑客,但后来我想知道他们是否这样做,因为实际上(最低限度)速度更快。另外,如果有人最近看到了导致iOS中的安全漏洞的代码,那么您将注意到大括号会阻止这个错误。他们也是为了速度而写作吗?

这个问题对任何C(语法)类型语言都是开放的,因为我认为可能会有一些不同。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-22 22:41:37

在编译语言中,大括号与速度无关。

在可选的情况下,它只是一种风格偏好,尽管有更大的出错可能性(比如苹果的冒失)。

所有这些语言都是编译好的。大括号本身不是任何类型的指令,它只是一个更高级的语法元素,用于告诉编译器一组语句构成某种类型的连贯块。(事实上,在许多语言中,它是一个卷发支撑,这可能更多地是一个传统问题,而不是任何其他问题。)它在精神上与分号、括号、冒号等类似。它只不过是一个语法符号,用来帮助你准确地向编译器表达你的程序。

据我所知,没有任何处理器或虚拟机具有与fyi_curly_brace_was_here指令相当的功能。

这个问题类似于问,在编译语言中,空格或额外分号是否会影响性能?这些都是可选的格式设置或必要的语法元素。

我们提到“编译”语言的原因是,在执行代码时对代码进行解析的某些解释语言,可能会因为解析而导致较小的速度损失,但即使在这些类型的语言中,与代码本身所做的任何其他操作相比,这种效果也可能完全可以忽略不计。

票数 4
EN

Stack Overflow用户

发布于 2014-03-22 22:31:58

在C或C++等编译语言中,括号的存在或不存在不能使实际程序更快。

我猜:他们只是在没有他们的情况下更快地入侵了它。

票数 3
EN

Stack Overflow用户

发布于 2014-03-22 22:30:14

不是的。编译后的代码将是相同的。

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

https://stackoverflow.com/questions/22584474

复制
相关文章

相似问题

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