腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
现代
的
C++
编译器
会
优化
掉
错误
的
常量
表达式
条件
吗
?
c++
、
debugging
、
compiler-optimization
、
constexpr
在我
的
整个代码中,我都有以下形式
的
调试
条件
: if (Globals::DEBUG_MODE) std::cout << "debugging info" << std::endl; DEBUG_MODE是全局
常量
头文件中
的
constexpr bool。我
的
问题是,当我准备发布我
的
软件并进行一些最终
优化
时,我是否可以只关闭DEBUG_MODE bool,
编译器
就会删除所有这些
条件</
浏览 18
提问于2020-08-26
得票数 0
回答已采纳
1
回答
MSVC与
常量
表达式
的
优化
c
、
compiler-construction
、
compiler-optimization
我正在处理
的
项目是用C语言编写
的
,它使用预处理器宏来处理
错误
。(_level, msg); \ __assume(0); \假设另一个函数确实在级别
错误
时退出(1),并且当我们调用>= ( ERROR,“something”)时,我们永远不会达到if
条件
;其中ERROR是一个定义
的
常量
。问题是MSVC似乎无法
优化
if
条件
浏览 0
提问于2014-01-12
得票数 4
4
回答
C/
C++
:添加0
c++
、
c
我在一个函数中有下面这行代码来计算一个序列中'G‘和'C’
的
个数:
编译器
是否足够聪明,在看到“count += 0”时什么也不做,或者他们是否真的
会
浪费时间“添加”0?
浏览 0
提问于2011-10-11
得票数 3
回答已采纳
1
回答
通过宏进行过滤
c
、
macros
、
c-preprocessor
、
variadic-macros
过滤是通过一个热编码掩码完成
的
.编译时间可以很容易地实现。_#预处理器作为打印宏
的
第一个输入参数时,这才有效。如果printLevel ## _FILTER不存在,我有兴趣找到一种方法来调用不同
的
宏(对于运行时筛选有效)。确切
的
情况是:{ PRINT( l
浏览 1
提问于2016-03-08
得票数 0
回答已采纳
3
回答
for循环中
条件
表达式
的
求值
c++
/ something here代码B:for (int i = 0; i < lim; i++) // something here哪种代码
会
更有效率代码A中
的
条件
表达式
是在for循环
的
每一次迭代中计算,还是
现代
编译器
负责处理它并自己给它分配一个
常量
值?
浏览 7
提问于2017-09-20
得票数 3
回答已采纳
7
回答
如果我想将一个无符号整数舍入到最接近
的
较小或等于偶数
的
整数,我可以除以2,然后再乘以2
吗
?
c++
、
c
例如:f(9)=8 我可以做x = x/2*2;
吗
?有没有可能
编译器
会
优化
掉
这样
的
表达式
?
浏览 0
提问于2017-10-18
得票数 68
2
回答
Pascal
编译器
需要SecureZeroMemory函数
吗
?
delphi
、
pascal
、
freepascal
、
fpc
. FillChar(Seed, SizeOf(Seed), 0);代码
的
问题是:FillChar是
编译器
的
内在特性,
编译器
可能
会
“
优化
它”。这个问题对于C/
C++
编译器
来说是众所周知
的
,参见。
现代
Pascal
编译器
(Delphi,FPC)能做这样
的
优化
吗
?如果可以
浏览 4
提问于2016-03-02
得票数 6
回答已采纳
2
回答
FPGA语言
的
编译器
是否执行
优化
?
verilog
、
compiler-optimization
、
fpga
现代
计算机语言
编译器
(如C/
C++
、Fortran、Julia等)
的
一个更有用
的
特性是,它们能够在生成二进制文件之前对代码执行
优化
。如果我用Verilog编写一个函数,使FPGA具有“硬件”特殊功能,
编译器
会
执行任何
优化
吗
?作为一个具体
的
例子,假设我想设置一个使用
的
多项式计算器,其中一些系数是0,
编译器
会看到这一点并
优化
有效
的<
浏览 7
提问于2016-11-02
得票数 4
回答已采纳
1
回答
C++
编译器
优化
c++
、
c++11
、
compiler-optimization
现代
的
C++
编译器
(包括gcc)
会
优化
以下(类似宏
的
)代码
吗
?get_last_error() : err();例如,它是否可以
优化
以下代码至: return test
浏览 0
提问于2012-02-22
得票数 1
1
回答
使用'+‘操作符连接字符串后创建了多少个对象?
java
、
string
、
string-concatenation
String str = "a"+"b"+"c"+"d" 在我看来,应该只创建一个对象,即StringBuilder
的
对象。敬请指正,提前解释一下it..thanks背后
的
逻辑。
浏览 0
提问于2018-09-19
得票数 3
4
回答
现在在
现代
C++
中使用内联汇编有什么好处
吗
?
c++
、
optimization
、
inline-assembly
我很感兴趣,如果我现在在
现代
C++
中使用内联汇编和像GCC 4.7和VS12这样
的
现代
编译器
,我会有什么好处
吗
?例如,用于矢量化和一些小
的
优化
?或者它只是淘气,
现代
优化
编译器
在任何范围内使用它都不会给我带来任何好处?
浏览 1
提问于2013-03-03
得票数 0
回答已采纳
1
回答
assert(3 /2 == 1):这行得通
吗
?
c++
、
optimization
、
assert
我刚刚了解到除法运算符
的
舍入行为在
C++
11之前没有定义。解决方案是使用std::div。() 我
的
程序总是假设/只会截断小数部分。作为一个快速修复,我想包括一个断言,这样如果有人在具有不同舍入行为
的
平台上编译,我至少会得到一个
错误
。assert(3 / 2 == 1)或static_assert(3 / 2 == 1)会做这项工作
吗
?或者这些
常量
会被
编译器
内部
的
算术
优化
掉</
浏览 0
提问于2015-11-27
得票数 4
4
回答
编译器
会对这个循环进行
优化
吗
?
c++
、
c
、
gcc
、
optimization
在C或
C++
中,如果
编译器
遇到一个for循环,其中计数器从0计数到n,而n是变量(不是函数调用,也不是
常量
),
编译器
会通过检查变量n (绑定变量)在循环期间是否会被更改(为写访问,例如:n可以是在循环之前计算
的
字符串
的
长度)来
优化
循环,这里
的
优化
指的是将其值复制到寄存器以避免内存访问?下面是一个示例: // do somet
浏览 6
提问于2016-09-19
得票数 2
回答已采纳
3
回答
警员是新
的
内嵌
吗
?
c++
据我所知,inline关键字在
c++
中可以追溯到旧
编译器
(当时称为“
优化
编译器
”)不能进行
优化
和
现代
编译器
,因此标记一个函数,inline告诉
编译器
,这应该内联,并作为一个副作用防止了ODR问题。随着
编译器
变得更好,有人意识到
编译器
在
优化
方面比程序员做得好得多,所以
编译器
的
inline需求更像是“提示”-(全部?)
现代
编译器
忽略
浏览 2
提问于2021-01-19
得票数 3
回答已采纳
1
回答
删除此第二次拷贝操作是否可以忽略
c++
、
compilation
我认为在创建Foo实例时会执行两个Bar副本,对
吗
?Bar performed Bar a;会使构造函数参数成为
常量
引用
现代
编译器
会
检测到这两个副本并为我进行
优化
吗
?因此,实际上,我试图
优化
是没有意义
的
,因为我已经隐含地实现了
优化
。另外,构造函数初始值列表
浏览 3
提问于2016-04-20
得票数 3
11
回答
用C/
C++
程序中
的
汇编程序
优化
某些函数真的值得
吗
?
c++
、
c
、
optimization
、
assembly
在游戏开发、实时系统等特定
的
开发领域,有一个快速
优化
的
程序是非常重要
的
。另一方面,
现代
编译器
已经做了大量
的
优化
工作,在一个需要考虑截止日期
的
世界中,在程序集中进行
优化
可能是很费时
的
。问题: 是在C/
C++
程序中用程序集
优化
某些函数真的值得
吗
?在用当今
现代
编译器
优化
C/<em
浏览 11
提问于2009-09-11
得票数 13
回答已采纳
1
回答
为什么三元运算符在编译时与运行时
的
工作方式不同?
c++
、
c++11
、
templates
、
metaprogramming
、
ternary-operator
1 : }; 上面的代码
会
产生
错误
;步骤是未定义
的
。在运行时,如果函数调用将取代最后一个
表达式
,则不会调用此函数,并且不会发生任何副作用。当
条件
为真时,为什么不删除此代码?请注意,RAND_MAX是cstdlib
常量
,我使用
的
是Visual Studio2015设置。
浏览 2
提问于2017-04-01
得票数 0
1
回答
为什么
C++
中
的
函数没有
常量
参数?
c++
、
templates
、
constexpr
、
auto
写下这样
的
代码
会
很方便也很好:即在常规(运行时,非
常量
表达式
)函数中混合非
常量
表达式
和
常量
表达式
参数。当然,上面的函数应该表现(并在下面的
编译器
中实现),就像它只是一个常规
的
模板化函数(具有不同
的
参数顺序):void f(double a, bool c) {}
浏览 1
提问于2021-06-11
得票数 2
12
回答
C++
中
的
常量
和
编译器
优化
c++
、
optimization
、
compiler-construction
我已经阅读了
C++
中关于
常量
正确性
的
所有建议,它很重要(部分),因为它有助于
编译器
优化
您
的
代码。我从来没有见过关于
编译器
如何使用这些信息来
优化
代码
的
很好
的
解释,即使是好书也没有解释幕后发生
的
事情。例如,
编译器
如何
优化
声明为const
的
方法,而不是声明为const但应该为const
的
方法。当引入可变变量时会发生什么?它们
会
浏览 11
提问于2008-10-17
得票数 50
回答已采纳
5
回答
用C而不是
C++
编写部分代码作为微
优化
值得
吗
?
c++
、
c
、
performance
、
micro-optimization
我想知道,对于
现代
编译器
和他们
的
优化
来说,用C而不是
C++
编写一些关键代码以使其更快是否仍然值得。我知道,如果类可以通过引用传递时被复制,或者当类由
编译器
自动创建时(通常使用重载操作符和许多其他类似的情况),
C++
可能
会
导致糟糕
的
性能;但是对于知道如何避免所有这些
的
优秀
C++
开发人员来说,仍然值得用C编写代码来提高性能
吗
?
浏览 3
提问于2010-10-22
得票数 7
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
const和define的区别
C+11右值引用(一看即懂)
致C+完美主义者:使用Visual Studio新工具分析你的代码
从 C+11 升级至 C+17,它们让嵌入式系统更好了!
const 并不能加快 C 代码的运行速度?
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券