【发布时间】:2015-07-07 06:25:54
【问题描述】:
而不是写:
string name = first->next->next->next->name;
int age = first->next->next->next->age;
写成:
node* billy_block = first->next->next->next;
string name = billy_block->name;
int age = billy_block->age;
效率更高?变量billy_block 是否有可能被编译器“优化掉”?
我不懂编译器,所以请用简单的术语。
【问题讨论】:
-
你说的“
billy_block优化了”是什么意思? -
一个好的优化器可能会为
billy_block分配一个寄存器,如果这就是你的要求 -
@CoffeeandCode,我不懂编译器。最终代码中是否可能根本不存在“billy_block” - 在堆栈上?
-
@samofoz 您的第一个和第二个示例可能会被优化为相同的目标代码,如果这就是您对
billy_block所做的一切的话
标签: c