C语言基础:C语言static和extern(1) - 作用与函数
前言
在前面, 我们讲过局部变量和全局变量, 那么在函数里面, 有没有类似这样子的定义呢? 其实是有的, 函数在这里分为外部函数和内部函数, 分别用两个关键字来声明, 下面我们一起来看看吧~~
开始
首先我们来看看一个例子:
我创建了两个文件, 一个用来存放main函数, 一个用来存放其他函数, 关于main函数大家都已经了解了, 这里不做多介绍, 我们主要是来讲Hello.c文件里面的知识.
有很多人应该看到Hello.c文件里面的关键字extern和static啦, 这两个关键就是我们前言里面所说的内部函数和外部函数, 我们来慢慢了解:
extern:
其实我们平常定义的void test(); 这样子的函数, 它就是外部函数, 只是extern可以省略不写, 所以很多人都忽略了extern的存在, 如果在函数的前面加上extern, 那么就是可以完整的定义一个外部的函数啦.
static:
这个代表的是内部函数, 所谓的内部函数就是只能在该文件里面调用, 不能在别的文件里面使用, 这次就是所谓的内部函数啦, 如果别的文件想要调用内部函数, 只能像上面的例子那样间接调用, 而不能直接调用.
下面还有更详细的解释:
外部函数:定义的函数能被本文件和其他文件访问
1> 默认情况下所有函数都是外部函数
2> 不允许有同名的外部函数
内部函数:定义的函数只能被本文件访问,其他文件不能访问
1> 允许不同文件中有同名的内部函数
static对函数的作用:
1> 定义一个内部函数
2> 声明一个内部函数
extern对函数的作用:
1> 完整地定义一个外部函数
2> 完整地声明一个外部函数
(extern可以省略,默认情况下声明和定义的函数都是外部函数)
好啦, 这次我们就讲到这里, 下次我们继续~~~