📄 9-5.txt
字号:
/* 范例:9-5 */
#include "file_a.cpp"
int b1; /* 全局自动初值0 */
void pp(void)
{
extern int a;
extern int c;
int b=3;
extern int varb_file_b; /* 定义于file_b,于file_a有include */
printf("a=%d varb_file_b=%d\n",a,varb_file_b);
{
extern int b1; /* 直接找文件全局 */
extern int b; /* 定义于file_a.cpp中已被展开 */
printf("b1=%d b=%d\n",b1,b);
{
extern int c;
::b1++; /* 全局b1=b1+1 (C++的运算符) */
/* ::c++; */ /* error! 变量c 未定义 */
printf("c=%d b1=%d\n",c,b1);
}
}
printf("重新声明为extern的c=%d\n",++c);
}
/* int a=1; */ /* error! 造成重复定义(已在file_a.cpp中定义过) */
int c=789;
int main(void)
{
extern int a; /* 重新声明file_a.cpp内变量a */
a++;
extern int a; /* 即使同一生命范围,也可以重新声明 */
static int b=3;
printf("a=%d b=%d\n",a,b); /* 输出为外部文件的变量a */
pp();
{
int a=33;
printf("%d\n",a); /* 局部a产生屏蔽效应,此时看不到外部变量a */
{
static int b; /* b=0 */
extern int a;
a++; /* a 定义于file_a.cpp */
printf("%d %d\n",a,b);
}
}
printf("未重新声明为extern的c=%d\n",++c);
getchar();
return 0;
}
程序执行结果:
a=6 b=3
a=6 varb_file_b=123
b1=0 b=10
c=789 b1=1
有重新声明为extern的c=790
33
7 0
未重新声明为extern的c=791
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -