关键字声明extern

都在函数外,全局声明时:

1,extern int a;        仅声明,而没有定义a, 还没为a分配存储空间

2,extern int a = 0; 错误, 此时不要定义. 用G++ 编译不会报错,但是不能编译出来的文件不能执行.


具体用法:

在头文件中仅 声明: 如

// test.h
#include <iostream>                                                                                                                                                                                                                                               
extern int i;                                                                                                                                                                                                
void fun();       

在源文件中还要全局定义!

//test.cpp
#include "test.h"                                                                                                                                                                                            
int i;                                                                                                                                                                                                       
void fun(){                                                                                                                                                                                                  
        printf("in fun() : %d \n",i);                                                                                                                                                                        
        i = 100;                                                                                                                                                                                             
        printf("in fun() : %d \n",i);                                                                                                                                                                        
}    

然后在其它文件中要调用该变量时,直接用就行了,不必定义

//main.cpp
#include <iostream>                                                                                                                                                                                          
#include "test.h"                                                                                                                                                                                            
using namespace std;                                                                                                                                                                                         
int main(){                                                                                                                                                                                                  
        fun();                                                                                                                                                                                               
        i = 3;                                                                                                                                                                                               
        printf("in main() : %d\n",i) ;                                                                                                                                                                       
        fun();                                                                                                                                                                                               
        return 0;                                                                                                                                                                                            
}       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值