包含常数位运算的gcc代码优化
我维护的代码在很多地方都有以下类型的行包含常数位运算的gcc代码优化,c,gcc,C,Gcc,我维护的代码在很多地方都有以下类型的行 x = x | ((0x1 & 0x3ff) << 16); x |= (0x7 << 28); y = y | (0x3 << 8); x=x |((0x1&0x3ff)因为&的所有操作数和Yes,这些常量表达式将在预编译阶段展开。但是((0x1&0x3ff)…即使没有-O3或任何-Ofwiw,它也会展开。为什么不看看汇编代码呢?
x = x | ((0x1 & 0x3ff) << 16);
x |= (0x7 << 28);
y = y | (0x3 << 8);
x=x |((0x1&0x3ff)因为&的所有操作数和Yes,这些常量表达式将在预编译阶段展开。但是((0x1&0x3ff)…即使没有-O3
或任何-O
fwiw,它也会展开。为什么不看看汇编代码呢?