《C语言》-(static和extern)

 

一、外部函数:

  • 定义:定义的函数能被本文件其他文件访问;
  • 特点:

1.默认情况下,所有的函数都是外部函数

2.不允许有同名的外部函数;

 

二、内部函数:

  • 定义:定义的函数只能被本文件访问,其他文件不能直接访问;
  • 特点:

允许不同文件中有同名的内部函数;

三、static对函数的作用

1.定义一个内部函数;

2.声明一个内部函数;

3.static不可神略;

四、extern对函数的作用:

1.完整的定义一个外部函数;

2.完整的声明一个外部函数;

3.默认情况下,声明和定义的函数都是外部函数,因此,extern可以省略;

五、全局变量分为两种(外部变量和内部变量)

1.外部变量

  • 定义:定义的变量能被本文件和其他文件访问;
  • 特点:

1.默认情况下,所有的变量都是外部变量;

2.不同文件中的同名变量都代表同一个变量;

 

2.内部变量

  • 定义:定义的变量只能被本文件访问;
  • 特点:

不同文件中的同名变量互不影响;

六、static对变量的作用

  • 定义一个内部变量;

七、extern对变量的作用

  • 声明一个外部变量;

八、局部变量

1.static修饰局部变量

  • 延长局部变量的生命周期

1.若不加static修饰,如在test函数内部定义了一个局部变量a,即:int a = 0; 当test函数运行结束,a就会被销毁,若再次调用test函数就又会对a分配存储空间;

2.若加上static修饰,如:static int a = 0; 直到程序结束的时候,a才会被销毁;

  • static修饰局部变量并没有改变变量的作用域;
  • 所有的test函数都共享着同一个变量a(变量a加static修饰后),即:多次调用test函数,加static修饰的变量a在test函数结束时,并没有被销毁,当下次再调用test函数时,不会再分配存储空间给被static修饰过的变量a;

代码练习:

 

运行结果:

 
 
 
 
 
posted @ 2015-02-05 01:07  深秋的露水  阅读(682)  评论(0编辑  收藏  举报