首页 > 代码库 > 黑 马 程 序 员_视频学习总结<C语言>----07 static和extern关键字、typedef

黑 马 程 序 员_视频学习总结<C语言>----07 static和extern关键字、typedef

 ---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

 

 

一、外部函数

  • 外部函数:如果在当前文件中定义的函数允许其他文件访问、调用,就称为外部函数。C语言规定,不允许有同名的外部函数

 

二、内部函数

  • 内部函数:如果在当前文件中定义的函数不允许其他文件访问、调用,只能在内部使用,就称为内部函数。C语言规定不同的源文件可以有同名的内部函数,并且互不干扰。

 

 

三、static、extern与函数的总结

1.在定义函数时,在函数的最左边加上static可以把该函数声明为内部函数(又叫静态函数),这样该函数就只能在其定义所在的文件中使用。如果在不同的文件中有同名的内部函数,则互不干扰。

2.static也可以用来声明一个内部函数

3. 在定义函数时,如果在函数的最左边加上关键字extern,则表示此函数是外部函数,可供其他文件调用。C语言规定,如果在定义函数时省略extern,则隐含为外部函数。

4.在一个文件中要调用其他文件中的外部函数,则需要在当前文件中用extern声明该外部函数,然后就可以使用,这里的extern也可以省略。

5..extern可以用来声明一个全局变量,但是不能用来定义变量

6.默认情况下,一个全局变量是可以供多个源文件共享的,也就说,多个源文件中同名的全局变量都代表着同一个变量

7.如果在定义全局变量的时候加上static关键字,此时static的作用在于限制该全局变量的作用域,只能在定义该全局变量的文件中才能使用,跟其他源文件中的同名变量互不干扰

 

四、typedef总结

1.我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。

2. 也可以在别名的基础上再起一个别名

typedef int Integer;typedef Integer MyInteger;

 

3.除开可以给基本数据类型起别名,typedef也可以给指针起别名

4.默认情况下,我们定义结构体变量需要带个struct关键字

5.typedef可以给指针、结构体起别名,当然也可以给指向结构体的指针起别名

6.使用typedef给枚举类型起别名也可以使代码简洁。

7.以后给类型起别名,最好使用typedef,而不是使用#define

 

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

详细请查看:www.itheima.com