A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 舒少勇 中级黑马   /  2015-3-27 07:08  /  1730 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static  和 extern的区别是什么?

4 个回复

倒序浏览
对函数:
extern的作用:               
        完整的定义外部函数        (可以被外部文件调用)
        完整的声明外部函数       
但是默认情况下,所有的函数都是外部函数,所以可以省略
static的作用               
        定义内部函数(只能在本文件调用,其他文件无法无法调用)       
        声明内部函数       
不可省略               

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

这是我自己的一些理解,希望对你有帮助
回复 使用道具 举报
流风124 发表于 2015-3-27 07:51
对函数:
extern的作用:               
        完整的定义外部函数        (可以被外部文件调用)

谢谢你的回答
回复 使用道具 举报
流风124 发表于 2015-3-27 07:51
对函数:
extern的作用:               
        完整的定义外部函数        (可以被外部文件调用)

回答的很好,基本就这些了
回复 使用道具 举报
static是静态存储类型,属于局部变量,只能用于同一个函数内,在其他函数内使用是错误的。extern是外部存储类型,属于全局变量,可以用于从他定义开始的后续所有函数内。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马