将默认值从Extern更改为Static

Mui*_*uis 0 c static gcc c99

我总是忘记在我的变量和函数中添加'static'前缀,因此GCC将它们标记为extern.是否可以更改此行为,以便默认情况下将所有内容标记为静态.这两种类型在运行时是否存在性能差异,还是更正式?

oua*_*uah 5

是否可以更改此行为,以便默认情况下将所有内容标记为静态.

据我所知.

这两种类型在运行时是否存在性能差异,还是更正式?

是的,gcc能够在static指定对象或函数时执行进一步的优化.例如,gcc(甚至在-O0)内联一个static只调用一次的指定函数.