只调用另一个函数的函数会减慢速度吗?

chi*_*kow 4 c compiler-construction compiler-optimization

我看到一些类似的代码

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;
}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是一种令人难以置信的浪费,但我认为中间功能可能以前有两个可以调用的功能,或者将来有一些扩展计划.我只是想知道像gcc这样的编译器是否可以检测到这种情况并消除实际程序中的无用功能,或者这种事情是否真的浪费了运行时的CPU周期?

Mat*_*hen 12

不要过早优化.专注于编写可读代码.即使没有优化,额外的函数调用可能对性能的影响很小.编译器可以选择内联它.

如果以后遇到性能问题,可以进行测试和配置以查找瓶颈.