OC中extern,static,const的用法
1.const的作用:
const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p)。 例如 NSString *const SIAlertViewWillDismissNotification;修饰的是SIAlertViewWillDismissNotification
被const修饰的变量是只读的
2.static的作用:
- 修饰局部变量:
1.延长局部变量的生命周期,程序结束才会销毁。
2.局部变量只会生成一份内存,只会初始化一次。
3.改变局部变量的作用域。
- 修饰全局变量
1.只能在本文件中访问,修改全局变量的作用域,生命周期不会改
2.避免重复定义全局变量
3..pch生成的全局变量是每个文件一份,所以修改所在文件的全局变量并不能跨文件修改
extern的作用
- 只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
- extern工作原理:先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { color: #bb2ca2 }
span.s2 { }
span.s3 { color: #703daa }
(例如别的.h或.m文件中声明了一个全局变量在当前页面想使用这个变量)
别的界面 APPdelegate声明了一个
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
span.s1 { color: #703daa }
span.s2 { }
span.s3 { color: #bb2ca2 }
span.s4 { color: #d12f1b }
NSString *const kDeviceTokenString = @"kDeviceTokenString";
当前界面
extern NSString *const kDeviceTokenString;
原文链接:http://www.jianshu.com/p/9fd82a6d016b
OC中extern,static,const的用法的更多相关文章
- OC中协议的概念以及用法
OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Java中的接口(抽象类),只不过OC中的名字更形象点,因为我们在学习 ...
- (转)全局变量、extern/static/const区别与联系
全局变量.extern/static/const区别与联系 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LIN ...
- extern static const abstract virtual
extern static const abstract virtual const const.常量,初始化过后值不能再变化的变量.
- OC中的extern,static,const
const的作用: const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p). 被const修饰的变量是只读的. static的作用: 修饰局部变量: 1.延长局部变量的生命周期,程序结束才会 ...
- OC中使用 static 、 extern、 const使用
static static用于定义静态变量,静态变量只会被初始化一次,并且直到程序销毁时才会释放 static NSString *str = @"asdfa"; const co ...
- 关于oc中出现的typedef的用法/定义函数指针
typedef int (^calculateBlock)(int a,int b); 这里面typedef的作用只是给 calculateBlock取了一个 别名,说明以后可以直接使用. calcu ...
- Java中的static关键字的用法
1.静态方法 static:通常在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: (1)它们仅能调用其他的static方法. (2 ...
- static const vs. extern const
在实现文件(.m文件)中使用static const来定义“只在编译单元内可见的常量”(只在.m文件内可见),由于此类常量不在全局符号表中,所以无须为其名称加类名前缀(一般以k开头). 在头文件中使用 ...
- c中常用的关键字static const volatile
在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数 ...
随机推荐
- ASIHTTPRequest异步请求 分类: ios技术 2015-03-01 09:33 48人阅读 评论(0) 收藏
我们运行程序,如果网速很慢,查询的时候会一直黑屏,直到请求结束画面才出现,这样用户体验很不好.因此同步请求一般只是在某个子线 程中使用,而不在主线程中使用.异步请求的用户体验要比同步请求好,因此一般情 ...
- Java 之 反射
1.反射 a.意义:允许运行中的Java程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性 b.概括:运行时探究和使用编译时未知的类 c.反射的核心原理: ①JVM在加 ...
- Mysql的收获
今天公司的业务需求中,遇到一个很郁闷的情况. 有一个申请记录,缺少申请原因的字段. 我以为很简单,采用left jion 很容易获取到申请原因. SELECT a.*,b.RealName,c.Dep ...
- js实现的文章输入检查与测速。(纯js版本)
朋友又提出一些需求.希望不要jquery .于是修改成js版本. <!DOCTYPE html> <html> <head> <meta charset=&q ...
- onethink的插件扩展
2014年7月25日 07:22:35 编写一个文章可以同步到微博的插件 思路:首先要进行微博的绑定,获得令牌.然后调用微博的api即可. 2014年7月25日 08:40:27 服务器与本地有区别. ...
- Django performance
Reference: https://impythonist.wordpress.com/2016/02/21/building-high-performance-django-systems/ Th ...
- 为什么32位操作系统最大支持4GB内存
因为32位操作系统的地址空间为32位,地址总数为2^32,每个地址对应1Byte内存空间,这样,32位操作系统管理的最大内存空间限制为2^32Byte=4*1024*1024*1024Byte,即4G ...
- iOS 之 导航栏按钮
UIButton *releaseButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [releaseButton setTitle ...
- OC--初始化UINavigationController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...
- Violin 琴弦介绍
共四根弦,从粗到细: 第四弦:音名:G:唱名:Sol 第三弦:音名:D:唱名:Re 第二弦:音名:A:唱名:La 第一弦:音名:E:唱名:Mi