码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员----static和extern

时间:2015-02-05 01:58:16      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

一、外部函数:

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

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;

代码练习:

技术分享

 

运行结果:

技术分享

 
 

黑马程序员----static和extern

标签:

原文地址:http://www.cnblogs.com/unique-ios/p/4273723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!