int main(void) { extern int a;//全局声明,表示要引入的这个变量a是全局变量 a += 50; printf("main: a=%d\r\n",a);//a=60,在main.c中修改a func();//a=160,在test01.c中又修改了a return 0; } 1. 2. 3. 4. 5. 6. 7. 8. 简单的说:你在某个头文件中用extern对变量做全局声明...
}/*定义两个全局变量*/intx=1;inty=2;intaddtwonum();//别的文件有方法体,这里竟然可以这样写。而且不用传参数就赋值!!!(从java角度看,挺别扭的!)intmain(void) {intresult; result=addtwonum(); printf("result 为: %d\n",result);return0; } 补充:声明和定义的故事 声明和定义 源码执行经过编译...
int main(void){ extern int g_a;prtValue(g_a);return 0;} int g_a = 10;void prtValue(int x){ printf(“%d”,x);} 2) 多个源文件情况 假定某程序包含file1.c和file2.c两个文件。file1.c文件中定义了一个int型全局变量g_b,如果file2.c文件中某函数想使用g_b变量,只需要在file2.c...
static int b = 0; // 定义一个static类型的全局变量b,初始值为0 void func(){static int c = 0; // 定义一个static类型的局部变量c,初始值为0 printf("b = %d, c = %d\n", b, c); // 打印b和c的值 b++; // b的值加1 c++; // c的值加1 }int main(){func(); // 调用func...
extern void show(); //声明外部符号show() int main() { show(); } //文件2.cpp代码 #include<stdio.h> void show() { printf("hello world"); } 运行结果如下: hello world 3.extern的注意事项 在使用extern时我们可能会写出这样的代码 : ...
int main(void) { extern int g_a; prtValue(g_a); return 0; } int g_a=10; void prtValue(int x) { printf(“%d”,x); } 2)多个源文件情况 假定某程序包含file1.c和file2.c两个文件。file1.c文件中定义了一个int型全局变量g_b,如果file2.c文件中某函数想使用g_b变量,只需要在file2....
int func1(); /* file2.c */ extern int x ; //该变量是已经在外部定义,此处只做一个声明 extern int func1();//该函数是已经在外部定义,此处只做一个声明 int main(void) { printf("x = %d",x); // x = 10 fun1(); return 0; ...
intvar; intmain(void){ var=10; return0; } 分析:程序编译成功,var是一个全局变量(隐势声明) externintvar; intmain(void){ return0; } 分析:程序编译成功,这里var只被声明,其他地方没有使用var,所以没问题。 externintvar; intmain(void){
#include<stdio.h>intmax(intx,inty);intmain(void){intresult;/*外部变量声明*/externintg_X;externintg_Y;result=max(g_X,g_Y);printf("the max value is %d\n",result);return0;}/*定义两个全局变量*/intg_X=10;intg_Y=20;intmax(intx,inty){return(x>y?x:y);} ...
int y; public: static int num; static int Getnum() { x+=5; // 这行代码是错误的,静态成员函数不能调用非静态数据成员,要通过类的对象来调用。 num+=15; return num; } }; int test::num = 10; int main(void) { test a; cout<<test::num<<endl; //10 ...