直接看代码
1.cpp
int add(int a);
void myini();
int abcaaa();
extern int abc;
//int abc;
int main()
{
myini();
int a=1;
int z=add(a);
printf("the z is %d\n",z);
printf("the abc is %d",abc);
int zz=abcaaa();
printf("z is %d\n",zz);
return 0;
}
2.cpp
int abc=212;
int aaa=0;
int add(int a)
{
return (a+100);
}
void myini()
{
abc=abc+55;
}
int abcaaa()
{
return (aaa+505);
}
1。为什么函数不用输入extern?因为默认了的是extern,不用再添加,如果要自己的文件使用就加static。
2。2.cpp中的变量仍然是对2.cpp中的函数有效的。且是全局的。在1.cpp extern声明后相当于对1.cpp的全局变量。
*如果要在多个源文件中包含一个头文件可以这样
1.cpp
include"99.h"
2.cpp
include"99.h"
99.cpp
int a;
99.h
extern int a;
struct b{int z;};
注意,结构体不用在源文件中定义也可以,不会出现任何警告,因为这时候还没有struct b b_t;即没有定义。