c++ - 将函数逻辑分解为子函数

标签 c++ c

将函数拆分成更小的子函数放到代码中,会影响程序的效率吗? 在降低函数的圈复杂度的同时,我将函数分解为更小的部分,并为其使用了辅助函数和内联函数。

void functionParent(arguments)
{

    intialCheckFunction(arguments);
    functionOne();
    functionTwo();
    functionThree();
    functionFour();

    return STATUS;
}

void functionOne()
{
   /*follows unary Principle.*/
}

我担心的是关于堆栈指针,频繁切换SP是否会极大地降低程序的效率还是可以忽略不计。 上面的函数 One,Two,.. 中有 UNARY 逻辑。 在此输入代码可以在两种上下文中回复,C 以及 C++

最佳答案

只要您认为有助于提高可读性,就应该将逻辑拆分为自己的函数:函数调用本身的成本可以忽略不计。

尽管调用函数通常会消耗一些空间和 CPU 周期,但您完全不必担心:所涉及的指令经过了令人难以置信的优化,并且编译器可以在认为合适时内联您的代码。

编辑(响应comment by Potatoswatter)

需要注意的一件事是传递参数,尤其是在 C++ 中,用户代码可以参与复制传递给函数的参数的过程。在 C 中按值传递大型结构体也可能需要几个周期,因此您应该尽可能通过引用或指针传递它们。

关于c++ - 将函数逻辑分解为子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243034/

相关文章:

c++ - 在 IOS Swift 项目中使用 OpenCV 进行视频处理

c - 为什么我的程序在写入文件时崩溃?

使用 pthreads() 创建和管理线程

c - stdin 允许读取 EOF 标志集

c++ - 如何在Qt中抓取视频帧?

c++ - 如果在消息框之后调用 setOverrideCursor(Qt::WaitCursor) 则不起作用

c++ - Xcode header 错误 - 命名空间 '_STL' 未包含命名空间 '_Rep'

c - 带有 Visual Studio 的 OpenMP : race condition

c++ - 需要在 linux 中编写一个守护进程,不确定使用 C++ 还是 C

c++ - 理解 const 的位置