【发布时间】:2013-04-03 15:30:51
【问题描述】:
给定以下代码:
int x=4;
int g=2;
int z=x/g;
据我所知,值“4”存储在内存中属于x 的位置,而“2”存储在内存中g 的位置。
现在,当 CPU 得到z=x/g 命令时,首先从内存中获取x 和g 的值,然后计算结果,并将其存储在z 中。
但是当以下代码运行时会发生什么:
int x=4;
int z=x/2;
CPU得到'4'后,他怎么才能得到'2'呢? CPU命令可以保存数据而不是地址和操作码吗?
【问题讨论】:
-
再次提醒我 - `\` 在 C 程序中的作用是什么?
-
很大程度上取决于编译器 - 它们可以直接加载到寄存器中,从堆栈中推送/弹出等 - 最好的办法是查看程序集,正如其他人提到的那样。跨度>
-
@500-InternalServerError C 的第一条规则是你不要谈论那个操作符 *wink*
-
你到底在问什么? “a cpu”(什么样的?很重要)是否可以在数学运算中保持直接参数?是的,这是一个共同的特征(尽管例如 x86 不能有直接除数)。或者编译器是否真的使用了这种能力?
标签: c++ c assembly operators cpu