C++ extern到底怎么用?

C++ extern到底怎么用?

基本解释

extern也可用来进行链接指定;也可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

说人话,即有以下两个作用:

  • 与“C”连用,如extern “C” void fun();告诉编译器按C的规则去翻译
  • 修饰声明全局变量或函数,其声明的变量和函数可以在其它模块(文件)中使用,注意,这只是一个声明而不是定义,具体的定义要在具体的模块中完成

例子

举个例子,我们想要声明一个long int runtime_minute变量供多个模块使用:

//time.h
#ifndef TIME_H
#define TIME_H
//首先我们在time.h中进行以下声明:
extern long int runtime_minute;
#endif //TIME_H

在头文件中通过extern声明的变量并没有定义,所以要在time.cpp中给出定义:

//time.cpp
#include "time.h"
//在time.cpp中给出runtime_minute变量的具体定义:
long int runtime_minute = 0;

这时,如果想要在time2.cpp中使用这个定义在time.cpp中的runtime_minute变量,只需要包含time.h这个头文件即可:

//time2.cpp
#include "time.h"
#include <iostream>
//在time.cpp中给出runtime_minute变量的具体定义:
int main(){
    runtime_minute++;
    std::cout<<runtime_minute<<std::endl;
    //输出为1
    return 0;
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值