extern和static关键字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extern和static关键字相关的知识,希望对你有一定的参考价值。

1、对函数的应用
static
声明和定义内部函数时都要加

extern
一般的函数就是外部函数,不需要extern


2、对变量的应用
extern:访问其他文件中的全局变量
头文件不能定义变量,否则链接期报错(不清楚为啥,不过,一般也不这么做。详见:永远不要在.h文件中定义变量!

例子:
fun.c
int a = 100;

main.c
extern int a;    //声明外部全局变量
extern只能用来声明变量,表明变量是外来变量,不能用来定义变量
如果引用的变量是外来变量,不写extern链接期报错


static:定义一个内部变量。外部文件不能访问,即使main.c变量声明加了extern
static int a;

 

以上是关于extern和static关键字的主要内容,如果未能解决你的问题,请参考以下文章

[原创] static, extern关键字的作用域,存储类型示例

16-static和extern关键字2-对变量的作用

012 static和external,cosnt关键字

Static和Extern关键字理解

通过项目实践带你彻底搞懂C/C++编程中static与extern两关键字的使用

关键字extern和static