黑马程序员技术交流社区

标题: static 和 extern的区别是什么? [打印本页]

作者: 舒少勇    时间: 2015-3-27 07:08
标题: static 和 extern的区别是什么?
static  和 extern的区别是什么?
作者: 流风124    时间: 2015-3-27 07:51
对函数:
extern的作用:               
        完整的定义外部函数        (可以被外部文件调用)
        完整的声明外部函数       
但是默认情况下,所有的函数都是外部函数,所以可以省略
static的作用               
        定义内部函数(只能在本文件调用,其他文件无法无法调用)       
        声明内部函数       
不可省略               

对变量
extern的作用:       
        声明外部变量
定义外部变量不加extern
(默认情况下,所有的全局变量都是外部变量,所以可以省略)
static的作用       
        定义内部变量
static 修饰的局部变量,       
        生命周期变长,程序结束时销毁
        但是它的作用域并没有改变
        对性能优化有益,经常使用的变量可以如此定义
比如说
     你在一个函数里用static 定义了一个变量,下次调用该函数时,会保留上次的值,这样定义的变量,也叫静态变量,好处就是:调用时不用频繁的开辟存储空间,也可以利用上次调用的值

这是我自己的一些理解,希望对你有帮助
作者: 舒少勇    时间: 2015-3-27 08:32
流风124 发表于 2015-3-27 07:51
对函数:
extern的作用:               
        完整的定义外部函数        (可以被外部文件调用)

谢谢你的回答
作者: 一步一个脚印    时间: 2015-3-27 09:04
流风124 发表于 2015-3-27 07:51
对函数:
extern的作用:               
        完整的定义外部函数        (可以被外部文件调用)

回答的很好,基本就这些了
作者: 飞鱼fly    时间: 2015-5-27 14:33
static是静态存储类型,属于局部变量,只能用于同一个函数内,在其他函数内使用是错误的。extern是外部存储类型,属于全局变量,可以用于从他定义开始的后续所有函数内。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2