70、extern的用法二和静态外部变量

新建工程  win32 console applicaton 名称70  空工程

新建工作区  添加到当前的工作空间 ww

新建文件 c++ source file

1.cpp

int A =10;
static int B =100;//static修饰的全局变量称作 静态外部变量,其他文件不可以通过它的变量名来引用他
int *p = &B;

2.cpp

#include<stdio.h>
extern int A;//extern 可以将全局变量的作用域扩展到其他文件①在不同的文件中不可以有重名的 非静态的全局变量②编译时遇到extern先在本文件中寻找其变量的定义,没找到会在连接的时候从其他文件中寻找其变量的定义
//extern int B;
extern int *p;
int main (void)
{
printf("%d\n",A);
//printf("%d\n",B);error因为是静态外部变量,不可以在其他文件中通过变量名来引用它
printf("%d\n",*p);//可以通过指针 间接的引用 其他文件中的静态全局变量
return 0;
}

static int A = 14;//可以尝试注释掉此句 对比输出结果

 

3.cpp

//int A = 99; error因为1.cpp中已经有了一个名字为A的非静态的全局变量

 

posted @ 2022-02-03 17:58  城北徐公135  阅读(145)  评论(0)    收藏  举报