【发布时间】:2011-01-11 04:51:23
【问题描述】:
我有点好奇 C 和 C++ 如何处理未存储在变量中的数据,例如:
int IE6_Bugs = 12345;
int Win_Bugs = 56789;
是的 - 一切都清楚了。 IE6_Bugs 有 123456 存储在它的特定内存地址。
然后呢..
if ( IE6_Bugs + Win_Bugs > 10000 )
{
// ...
所以 C 抓取两个变量的值并将它们相加,以便将结果与右侧的 int 进行比较。
但是:
IE6_Bugs+Win_Bugs是否曾经到达 RAM?还是处理器直接通过自己的缓存比较值?或者,在编译过程中,上面的 if 语句是否转换为机器更“易于理解”的东西? (也许先计算
IE6_Bugs+Win_Bugs并将其存储在某个变量中,...)
【问题讨论】:
-
int your_Bug = 假设 INT_MAX 大于 32768。
-
所以 Win_Bugs 超过了 INT_MAX - 问题出在哪里? ^^ 如您所见,我选择了 123456789 作为示例数字。
标签: c++ c memory compilation