我看到一些代码是这样的
int *func2(int *var) {
//Do some actual work
return var;
}
int *func1(int *var) {
return func2(var);
}
int main() {
int var;
var = func1(&var);
return 0;
}
这对我来说似乎是一种难以置信的浪费,但我认为中间函数以前可能有两个可以调用的函数,或者将来有一些扩展计划。我只是想知道像 gcc 这样的编译器是否可以检测到这种事情并消除实际程序中无用的功能,或者这种事情是否真的会在运行时浪费 CPU 周期?
最佳答案
不要过早优化。专注于编写可读代码。即使没有优化,额外的函数调用对性能的影响也可能很小。编译器可能会选择内联它。
如果以后遇到性能问题,您可以进行测试和分析以找出瓶颈。
关于c - 一个只调用另一个函数的函数会减慢速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9169000/