【问题标题】:difference between extern "C" char Table[256][256]; and extern char Table[256][256];extern "C" char Table[256][256] 之间的区别;和外部字符表[256][256];
【发布时间】:2018-02-22 10:07:28
【问题描述】:

在Visual Studio代码中成功编译

extern "C"  char Table[256][256]; 

如果我用

替换上面的代码
extern char Table[256][256];

visual studio 开始向我显示未解决的 Table 外部错误?

【问题讨论】:

标签: c++ visual-c++


【解决方案1】:

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

第一个是language linkage specifier,它使变量可以与C 互操作。

第二个是storage class specifier,它声明变量是在别处定义的(它不是,因此出现“未定义的引用”错误)。

您实际上可以使用两者来声明一个具有在别处定义的 C 链接的变量:

extern "C" extern char Table[256][256]; 

【讨论】:

  • @anatolyg 好吧,前提是您需要这样做。只需注意两个 extern 关键字可以存在于同一个声明中。
  • extern "C" extern 来自最近为我们带来noexcept(noexcept(...)) 并且即将为我们带来requires requires....
  • @StoryTeller 不要忘记long long,模板模板参数,我相信我们已经非常接近auto auto ;)
猜你喜欢
  • 2010-09-29
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多