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

前端之家收集整理的这篇文章主要介绍了c编译器是否优化0 * x?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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;

猜你在找的C&C++相关文章