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

标签 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;
}

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

最佳答案

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

如果以后遇到性能问题,您可以进行测试和分析以找出瓶颈。

关于c - 一个只调用另一个函数的函数会减慢速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9169000/

相关文章:

计算输入一个单词的次数

将大端结构转换为小端结构

apache-flex - Flex 可以编译 Flash Lite 3 及更高版本吗?

c - C 中的 Pointer Fun。为什么不能编译?

c - 使用 C 的 fscanf 检测 0x0a

c++ - 在前往 C++ 之前,我应该首先学习什么?

performance - 替代 Flex 编译器

c++ - 我应该避免在循环中重复访问相同的方法吗?

java - 为什么java编译器不重写这段代码?

c++ - 使用 g++5 进行的内联构建时出现 valgrind 错误 - valgrind 或 g++5 中的错误?