C++-extern-用法-extern和include区别

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各声明一次,其他使用这些变量的时候只需要包含该头文件即可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值