?? 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 + -