加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c编译器是否优化0 * x?

发布时间:2020-12-16 03:21:31 所属栏目:百科 来源:网络整理
导读:c编译器是否优化0 * x?我的意思是这样做 转换为0或它实际上是乘法? 谢谢 解决方法 它可能: int x = 3;int k = 0 * 3;std::cout k;00291000 mov ecx,dword ptr [__imp_std::cout (29203Ch)] 00291006 push 0 00291008 call dword ptr [__imp_std::basic_os
c编译器是否优化0 * x?我的意思是这样做
转换为0或它实际上是乘法?

谢谢

解决方法

它可能:
int x = 3;
int k = 0 * 3;
std::cout << k;

00291000  mov         ecx,dword ptr [__imp_std::cout (29203Ch)] 
00291006  push        0    
00291008  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (292038h)]

它甚至完全优化了变量.

但它可能不会:

struct X
{
    friend void operator *(int first,const X& second)
    {
       std::cout << "HaHa! Fooled the optimizer!";
    }
};

//...
X x;
0 * x;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读