我们可以将全局静态变量视为全局变量

Ale*_*pus 2 c++ global-variables static-variables

问题是我们可以将变量A称为"全局变量"吗?一方面A是静态全局变量,因此根据定义它是全局变量,来自另一个全局变量必须在程序的每个点都可用,而不仅仅是在当前的转换单元中.谢谢.

#include<stdio.h>

static int A;

void main()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 7

不,a static不是全球性的,因为它具有内部线索.将为每个定义它的TU存在一个副本.

一方面,A是静态全局变量,因此根据定义它是全局变量

为什么它是静态全局变量?static是的,是的,但就是这样.

C++中的全局变量extern只是声明和定义的一次,或者包含为static成员(具有完全不同的含义).