CB *_*ley 61
i具有内部链接,因此您无法i在其他源文件(严格翻译单元)中使用该名称来引用同一对象.
j具有外部链接,因此j如果您extern在另一个翻译单元中声明它,则可以使用它来引用此对象.
wal*_*lyk 21
i模块外部不可见; j是全球可访问的.
也就是说,与其链接的另一个模块可以做到
extern int j;
Run Code Online (Sandbox Code Playgroud)
然后能够读取和写入值j.同一个其他模块无法访问i,但可以声明自己的实例,即使是全局实例 - 第一个模块也看不到它.
i将具有静态链接,即该变量只能在当前文件中访问。
j应定义为extern,即
extern int j;
Run Code Online (Sandbox Code Playgroud)
放在另一个头文件( .h)中,那么它就具有外部链接,并且可以跨文件访问。