static和extern简单使用(要使用一个东西,先了解其作用)
2017-10-12 16:05
363 查看
static 的作用:
一.修饰局部变量:
1.延长局部变量的生命周期,程序结束才会销毁。
2.局部变量出货生成一份内存。
3.改变局部变量的作用域。
二.修饰全局变量
1.只能在文件中访问,修改全局变量的作用域,生命周期不会改变
2.避免重复定义全局变量
extern作用:
只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
extern工作原理:
先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。
static与const作用:声明一个只读的静态变量
开发使用场景:在
开发中使用场景:在
原因:
static与const组合:在每个文件都需要定义一份静态全局变量。
extern与const组合:只需要定义一份全局变量,多个文件共享。
全局常量正规写法:开发中便于管理所有的全局变量,通常搞一个GlobeConst文件,里面专门定义全局变量,统一管理,要不然项目文件多不好找。
GlobeConst.h
GlobeConst.m
一.修饰局部变量:
1.延长局部变量的生命周期,程序结束才会销毁。
2.局部变量出货生成一份内存。
3.改变局部变量的作用域。
二.修饰全局变量
1.只能在文件中访问,修改全局变量的作用域,生命周期不会改变
2.避免重复定义全局变量
extern作用:
只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
extern工作原理:
先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。
// 全局变量:只有一份内存,所有文件共享,与extern联合使用。 int a = 20; // static修饰全局变量 static int age = 20; - (void)test { // static修饰局部变量 static int age = 0; age++; NSLog(@"%d",age); } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [self test]; [self test]; extern int age; NSLog(@"%d",age); } I
五、static与const联合使用
static与const作用:声明一个只读的静态变量开发使用场景:在
一个文件中经常使用的字符串常量,可以使用static与const组合
// 开发中常用static修饰全局变量,只改变作用域 // 为什么要改变全局变量作用域,防止重复声明全局变量。 // 开发中声明的全局变量,有些不希望外界改动,只允许读取。 // 比如一个基本数据类型不希望别人改动 // 声明一个静态的全局只读常量 static const int a = 20; // staic和const联合的作用:声明一个静态的全局只读常量 // iOS中staic和const常用使用场景,是用来代替宏,把一个经常使用的字符串常量,定义成静态全局只读变量. // 开发中经常拿到key修改值,因此用const修饰key,表示key只读,不允许修改。 static NSString * const key = @"name"; // 如果 const修饰 *key1,表示*key1只读,key1还是能改变。 static NSString const *key1 = @"name";
六、extern与const联合使用
开发中使用场景:在多个文件中经常使用的同一个字符串常量,可以使用extern与const组合。
原因:
static与const组合:在每个文件都需要定义一份静态全局变量。
extern与const组合:只需要定义一份全局变量,多个文件共享。
全局常量正规写法:开发中便于管理所有的全局变量,通常搞一个GlobeConst文件,里面专门定义全局变量,统一管理,要不然项目文件多不好找。
GlobeConst.h
/*******************************首页****************************/ extern NSString * const nameKey = @"name"; /*******************************首页****************************/
GlobeConst.m
#import <Foundation/Foundation.h> /*******************************首页****************************/ NSString * const nameKey = @"name"; /*******************************首页****************************/
相关文章推荐
- 一个例子了解apacheBench的简单使用方法
- 【转】static和extern的区别;当使用另外一个文件中的变量、类、方法时,什么时候改用extern声明,什么时候该include?
- 一个简单例子了解使用互斥量线程同步
- 今天分享的是一个在表格中修改以及分列模糊查询的东西,能帮助初学者更快的了解angluar中的传值和管道符如何使用
- static(c中定义的关键字1、被其修饰者 外部无法使用(相反的都可以使用extern在外部使用) 2、函数局部变量使用成为静态的放入静态池-生存期改变。c++进行了扩充,使它在类中有了特殊作用)
- 简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。
- const , static , extern , 宏的简单使用与理解
- extern 的一个简单使用
- 简单介绍C语言中auto,register,static,const,volatile,extern等几个关键字的作用
- Singleton单例模式是最简单的设计模式,它的主要作用是保证在程序执行生命周期中,使用了单类模式的类仅仅能有一个实例对象存在。
- 一个例子了解static作用
- const ;static;extern的使用与作用
- 通过一个简单的例子,介绍如何使用LDAP(转)
- 一个简单批处理病毒让你了解计算机病毒的基本原理!
- Linux下,使用C/C++编写一个简单的消息处理程序
- Linux下,使用C/C++编写"静态链接库"的一个简单例子
- 在MFC下使用OpenGL的一个简单的例子
- Linux下,使用C/C++编写的一个简单的信号处理例程
- 不使用ATL向导,创建一个简单的ATL对话框程序.
- 不再使用自动编号了。自己写了一个Id生成器,超级简单