在下面给出的代码中,我没有声明任何变量,这意味着我使用了0个字节,或者像字符串文字一样在ROM中声明了常量。
#include <stdio.h> //Compiler version gcc 6.3.0 int main() { printf("%d",2*5); return 0; }
30byixjq1#
常量存储在不同的位置:
x
3*4+5
1条答案
按热度按时间30byixjq1#
常量存储在不同的位置:
x
乘以2,编译器可能会生成一条指令,把x
加到它自己身上,所以数字2永远不会出现在生成的代码中。3*4+5
,在编译时被求值,结果17出现在程序的某个地方,而数字3、4和5将不会出现在程序中。如果编译器能够进一步简化表达式,一些常数可能消失或合并。