static void foo(void);
[.....]
void foo(void) {
.....
}
产生静态范围的“foo”,而如果“static”从声明移动到定义,则会出现错误。我无法提出一个谷歌问题来让我找到理由,但对我来说这似乎不合理......
有人有见解吗?
最佳答案
链接器需要函数声明来解析通过翻译单元的调用。因此,如果函数被声明为静态,则在翻译单元之外将无法访问它。
如果将 functio 声明为非静态,并定义为静态,则会收到错误,因为声明和定义不匹配,但名称相同。
关于c - 过程声明和定义不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079144/