extern ostream cout(&fout); 这里为什么要用 extern ?

我想知道 cout 在哪个地方定义的,找来找去找到了 VC/crt/src/stl/cout.cpp 这个文件,里面有这么一句代码:
__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cout(&fout);
忽略那两个无关紧要的宏,剩下
extern ostream cout(&fout);

让我疑惑的是,这里为什么也用 extern ,extern不是用来声明外部变量的吗?

阅读 3.1k
1 个回答

外部不外部的,这只是extern这个关键字的字面意思。
实际中,变量加extern的用意是“只声明而不定义一个变量”,类似于写一个没有函数体的函数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题