static, extern, const区别

5个修饰关键字

static

a. 修饰局部变量: 把这个局部变量变为静态变量, 程序启动就加载, 程序退出才收回

eg. static int num = 10; //初始化语句, 只执行一次

局部变量指: 只定义在某个函数内

b. 修饰全局变量: 代表这个全局变量只能在本文件中访问

全局变量指: 定义在#import 与 @interface 类名 () 之间

c. 修饰函数: 代表这个函数只能在本文件中访问

extern

a. 不能修饰局部变量

b. 修饰全局变量: 代表这个全局变量可在所有文件中访问

c. 修饰函数: 代表这个函数可在所有文件中访问 (如果函数前没有加修饰符, 则默认是extern)

auto

a. 只能修饰局部变量(局部变量默认就是auto)

b. 代表这个变量让系统自动管理, 什么时候该回收就回收

register

a. 只能修饰局部变量, 且不能用取地址符&

b. 代表把这个局部变量尽可能添加到寄存器存储 (寄存器容量小, 存储有限)

volatile

a. 易变的, 不稳定的, 说明变量在程序执行中可被隐含的改变

const修饰符 不可以修改

a. 修饰变量, 修饰谁, 谁就不可以修改

eg.  const int a=10; //a不能改, 只读

int const *m; //m可以改, *m不能改

int *const n;  //n不能改, *n可以改

const int *p; //p可以改, *p不可以改

const int *const q; //q不能改, *q也不能改

参考资料:

1)  http://www.jianshu.com/p/2fd58ed2cf55  const,static,extern的区别 详细

2)  http://www.jianshu.com/p/3fa703e80720 const,static,extern的区别 粗略

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • static 修饰局部变量 让局部变量只初始化一次 局部变量在程序中只有一份内存 并不会改变局部变量的作用域,仅仅...
    大冲哥阅读 1,546评论 0 1
  • ### const,static,extern简介 ### 一、const与宏的区别(面试题): * `const...
    老骚鹅阅读 741评论 0 7
  • const,static,extern简介一、const与宏的区别(面试题):const简介:之前常用的字符串常量...
    BinaryRo阅读 309评论 0 1
  • 一、const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们...
    金约21依代阅读 264评论 0 1
  • 一、const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏...
    Lucky丶晴阅读 262评论 0 1

友情链接更多精彩内容