为什么要使用`extern void my_func();`而不是包含`my_utils.h`?

Coo*_*J86 8 c extern

我正在研究一些我没写的代码,并注意到有很多代码extern void my_func();.

我的理解是,extern对于全局变量,而不是函数.

是否有一个实际的理由来声明一个函数,extern而不是将它放在头文件中并包含它?或者这只是一种风格选择?

Oli*_*rth 10

仅在由于某种原因,头文件未声明该函数时才需要这样做.并且extern对于函数来说总是不必要的,因为函数总是extern默认的.

  • @Donotalo:然后你的编译器坏了.`#include`-带有函数原型的头文件相当于将原型直接写入源文件,并且你看不到头文件充满了明确的`extern`函数! (2认同)