linkage

#include <stdio.h>
                                                                                                    
static int i3 = 3;                                                                                  
int i3;                                                                                      

int main() {
}

会有编译错误么?
如果是

#include <stdio.h>
                                                                                                    
static int i3 = 3;                                                                                  
extern int i3;                                                                                

int main() {
}

会有编译错误么?
答案是前者会, 后者不会. 如果你答对了, 本篇就不用看了.

extern这个关键词到底是什么意思? 是不是表示, 这个symbol的定义不在这个源文件, 在另一个源文件? 好多博客都说, 如果你要用其它源文件的函数, 需要extern.

其实它完全不是这个意思, 它(未完待续)

上一篇:连接mysql数据库报错java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized...解决方法


下一篇:C#NET调用C++X64动态链接库导出函数