extern"C"char表之间的区别[256] [256]; 和extern char表[256] [256];

Zah*_*sar 3 c++ visual-c++

在Visual Studio代码中成功编译

extern "C"  char Table[256][256]; 
Run Code Online (Sandbox Code Playgroud)

如果我用上面的代码替换

extern char Table[256][256];
Run Code Online (Sandbox Code Playgroud)

visual studio开始给我表未解决的外部错误?

Que*_*tin 9

这是关键字的两个不相关的含义extern.

第一个是语言链接说明符,它使变量与C可互操作.

第二个是存储类说明符,它声明变量是在别处定义的(它不是,因此是"未定义的引用"错误).

您实际上可以使用两者来声明具有在其他地方定义的C链接的变量:

extern "C" extern char Table[256][256]; 
Run Code Online (Sandbox Code Playgroud)

  • `extern"C"extern`来自最近给我们带来'noexcept(noexcept(...))并且很快带给我们的人们的经典`需要`.... (5认同)
  • @StoryTeller不要忘记`long long`,模板模板参数,我相信我们已经非常接近`auto auto`;) (3认同)