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可以省略,默认情况下声明和定义的函数都是外部函数)






好啦, 这次我们就讲到这里, 下次我们继续~~~

原文地址:https://www.cnblogs.com/iOSCain/p/4282871.html