在C或C ++中,如果函数仅用于单个翻译单元(即文件),则可以将函数声明为static
,例如:
static int square(int a) {
return a * a;
}
这应该允许编译器更好地优化它。虽然它有点难看(编辑:关于丑陋的观点可能会有所不同;这个问题不是关于那个),如果我不需要,我宁愿不必这样做。 真正制造了多少差异?
static
的非static
函数的开销是多少?static
函数(可能带有-flto
或ThinLTO?)。编辑:任何架构和答案的答案编译器是受欢迎的,但显然更常见的更有帮助(Clang,x86-64)。