extern:显示的表明 变量或者函数的定义在别的文件中。
情景1:一个c文件需要调用另一个c文件里的变量或者函数。
情景2:多个cpp文件中都想调用同一个变量或者函数。
extern和include的区别
情景1:一个c文件需要调用另一个c文件里的变量或者函数。
main.cpp :
#include<iostream>
using namespace std;
extern void funa();
extern void funb();
int main()
{
std::cout << "main()\n";
funa();
funb();
}
a.cpp
#include <iostream>
void funa(){
std::cout << "funa()\n";
}
b.cpp
#include <iostream>
void funb() {
std::cout << "funb()\n";
}
情景2:多个cpp文件中都想调用同一个变量或者函数。
比如main.cpp,a.cpp,b.cpp都想调用 comm.cpp的函数
a.cpp
#include <iostream>
extern void comm();
void funa() {
std::cout << "mainfuna()\n";
comm();
}
b.cpp
extern void comm();
void funb() {
std::cout << "mainfunb()\n";
comm();
}
comm.cpp
#include <iostream>
void comm() {
std::cout << "comm()\n";
}
head.h
#pragma once
void funa();
void funb();
main.cpp中调用
#include <iostream>
#include "head.h"
/*
1.定义
extern int a=5;
int a=5
2.声明
extern a
*/
int main()
{
std::cout << "main()\n";
funa();
funb();
}
extern和include的区别
本质上来说,#include和extern没什么差别,但是extern具备很多优点:
当用到多个外部变量的时候,extern在每个用到的文件中需要用多个extern声明
而#include只需要在include各声明一次,其他使用这些变量的时候只需要包含该头文件即可
本文介绍了C++中extern关键字和#include预处理指令的作用。extern用于声明外部变量或函数,允许不同源文件间共享。例如,main.cpp、a.cpp和b.cpp通过extern调用comm.cpp的函数。而#include则是将头文件的内容直接插入到当前文件,通常用于包含头文件中声明的函数和变量。extern避免了重复声明,提高了代码组织的灵活性。

1290

被折叠的 条评论
为什么被折叠?



