1 使用extern修饰非static的全局变量和函数;
修饰变量
#include <iostream>
#include<string>
using namespace std;
void printInfo();
int main(int argc, char** argv) {
//修饰变量,如果此处没有extern修饰msg在c语言中会直接编译报错,在c++中无法打印msg信息
extern string msg;
printInfo();
return 0;
}
string msg="万事皆因忙中错,好人半自苦中来";
void printInfo(){
cout<<msg;
}
修饰函数
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char** argv) {
extern void printStr();
printStr();
return 0;
}
void printStr(){
string msg="明朝那些事儿";
cout<<"msg="<<msg<<endl;
}
2引用外部变量函数
创建外部原文件test.cpp
#include <iostream>
#include <string>
using namespace std;
string testMsg="引用外部文件变量";
在main.cpp主函数中掉调用外部变量
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char** argv) {
extern string testMsg;
cout<<"testMsg="<<testMsg<<endl;
return 0;
}
创建外部函数原文件fun.cpp
#include <iostream>
#include <string>
using namespace std;
void printFunMsg(){
cout<<"funMsg="<<"调用外函数"<<endl;
}
在main.cpp函函数中调用printFunMsg()函数
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char** argv) {
extern void printFunMsg();
printFunMsg();
return 0;
}