小编zep*_*hon的帖子

内部和无联系之间的区别

请参阅同一翻译单元中的以下代码:

static int global_var; // file scope in C and global namespace scope in C++
                       // internal linkage
void f(void)
{
    static int local_var; // block scope in C and local scope in C++
                          // no linkage 
}
Run Code Online (Sandbox Code Playgroud)

我的理解是这样的:

  • 我可以从翻译单元的任何地方引用global_var,因为它具有全局范围.
  • 我只能在函数f中引用local_var,因为它具有局部范围.

我的问题:

  1. 与链接有关的两个变量有什么区别?
  2. 你能提供一个内部没有联系有所作为的例子,差异不仅来自范围吗?

编辑

在James Kanze的回答和评论之后,我现在能够构建一个示例,显示内部和无链接属性之间的区别:

static int i; // definition
              // static storage
              // internal linkage

void f(void)
{
    extern int i; // declaration
                  // refers to the …
Run Code Online (Sandbox Code Playgroud)

c c++ scope linkage

10
推荐指数
1
解决办法
1473
查看次数

标签 统计

c ×1

c++ ×1

linkage ×1

scope ×1