黑马程序员技术交流社区
标题:
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