Vor*_*rac 8 c performance coding-style
我试图在几种可能的做法之间做出决定.比方说,我的函数有许多if()块,它们处理数据,这对它们来说是唯一的.
我应该声明并初始化块内的本地(用于块)数据吗?这是否具有运行时性能成本(由于堆栈中的运行时分配)?
或者我应该在函数入口处声明和/或初始化所有变量,以便在一个可能更快的操作块中完成?
或者我应该在不同的函数中分隔if()块,即使它们只有几行并且在程序中只使用了一行?
或者我是否正在寻找另一个更清洁的选择?这个问题是否能够以当前的一般形式回答?
我应该声明并初始化块内的本地(用于块)数据吗?
绝对:这往往会使程序更具可读性.
这是否具有运行时性能成本(由于堆栈中的运行时分配)?
否:所有分配都是预先完成的 - 堆栈上的空间在进入函数时保留给所有分支中的变量,而不是在输入分支时.而且,这甚至可以节省一些空间,因为编译器可以重用为非重叠分支中的变量分配的空间.
或者我应该在函数入口处声明和/或初始化所有变量,以便在一个可能更快的操作块中完成?
不,这不是更快,可能会稍微浪费一点.
或者我应该在不同的函数中分隔if()块,即使它们只有几行并且在程序中只使用了一行?
这可能会对您的程序的可读性产生负面影响.