《MFC 笔记》 Part2 浅析extern的作用
2016-04-05 10:34
183 查看
《MFC 笔记》 Part2 浅析extern的作用
1、extern的使用
extern表示是外部函数或外部变量,比如:
1、extern void add(int x,inty);表示该函数主体不在当前模块中,在另一个模块中(文件)
2、extern int total;表示该变量在另一个模块总定义过。
一般都把一些经常用到的枚举和变量之类的写在.h头文件中。这样要引用时直接include "头文件名"就可以了调用里面所有的枚举和变量了。在大型项目中,引用别的.c文件中的函数则只能用extern,因为.c文件是不能
include的。所以想引用别的.c文件中的函数和全局变量、枚举等等的就只能用extern。
extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。另外,extern也可用来进行链接指定。
static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、PROLOG、Ada等语言中也是有出现的,只是有着不同的作用。
区别在于:
1、全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern
全局变量名的声明,就可以使用全局变量;
2、全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。
3、extern 外部变量声明,static
静态变量声明。
1、extern的使用
extern表示是外部函数或外部变量,比如:
1、extern void add(int x,inty);表示该函数主体不在当前模块中,在另一个模块中(文件)
2、extern int total;表示该变量在另一个模块总定义过。
一般都把一些经常用到的枚举和变量之类的写在.h头文件中。这样要引用时直接include "头文件名"就可以了调用里面所有的枚举和变量了。在大型项目中,引用别的.c文件中的函数则只能用extern,因为.c文件是不能
include的。所以想引用别的.c文件中的函数和全局变量、枚举等等的就只能用extern。
2、extern 和static区别
extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。另外,extern也可用来进行链接指定。static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、PROLOG、Ada等语言中也是有出现的,只是有着不同的作用。
区别在于:
1、全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern
全局变量名的声明,就可以使用全局变量;
2、全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。
3、extern 外部变量声明,static
静态变量声明。
相关文章推荐
- 从IRQ到IRQL(PIC版)
- Ubuntu社区文档地址
- 从ICLassFactory 为 CLSID的COM组建创建实例失败:c001f011
- codetemplates.xml
- ANR 产生的原因以及解决办法
- java equals 比较两个字符串,总是返回false
- 正则表达式记录
- aws关闭账户方法
- android Fragment 的使用详解
- linux文件系统上的特殊权限
- LeetCode Patching Array
- 查询字段和类型
- object-c中的BOOL类型
- Objective-C中的Hello World
- 一个非常简练的FTP服务器搭建绿色软件
- 51单片机串口通信及波特率寄存器设置
- 传感器,加速计,蓝牙以及UIDevice方法的详细说明
- instancesRespondToSelector与respondsToSelector的区别
- 【LeetCode】44. Wildcard Matching解法及注释
- Android端 配置极光推送