为什么要编译是否使用“extern”?

时间:2010-11-30 01:52:51

标签: c++ compilation

在a.cpp中:

int t()
{
  //definition goes here
  ...
}

b.cpp:

#include "a.h"

int main()
{
  t();
}

最后a.h:

extern int t();
//int t();

两种形式的a.h都有效,为什么?

1 个答案:

答案 0 :(得分:9)

因为默认情况下函数是extern,所以extern关键字是多余的。有些人喜欢明确添加extern,当他们想要暗示其他开发人员在.cpp文件中找不到该函数的定义时,该文件的名称与此.h文件相同,然后他们添加指向声明函数的注释。但是从编译器的角度来看,它不会影响任何东西。