【发布时间】:2016-02-04 13:12:29
【问题描述】:
我想知道编译器是否优化了编译时知道参数的C函数?
例如,在下面的代码中,由于已知 OR (||) 函数的参数之一为真,因此 if 函数的条件将始终为 true。会自动优化吗?可以推广到所有的C函数吗?
#define COND 1
int main(void)
{
if(rand()%8<7 || COND)
/*something*/
return 0;
}
【问题讨论】:
-
抱歉,您实际上是在问“编译器优化是如何工作的”。这可能是编译器设计中最广泛和最复杂的领域。它不仅取决于编译器,还取决于目标架构。整个区域称为“编译器构建”,我强烈建议您自己搜索。有大量文件可供查找。
标签: c function optimization compilation