gcc或clang是否优化以下代码而不使用额外的局部变量声明
void loop (int* array) {
for (int i = 0; i < 10; i++) {
printf ("%i", array[i])
}
}
在堆栈上的for循环中增加一个局部变量,就能和这个函数一样有效吗?
void loop (int* array) {
for (int i = 0; i < 10; i++) {
int helper_variable = array [i];
printf ("%i", helper_variable)
}
}
最好的祝愿,tt
1条答案
按热度按时间2nc8po8w1#
如果你至少使用
-O1
编译,gcc和clang会优化它们。你可以在编译器资源管理器上检查这些问题:https://godbolt.org/z/Pjvzzos55