iOS开发好东西小知识点

ios 关键字

2017-09-13  本文已影响31人  追逐_chase

const,static,extern简介

一、const与宏的区别(面试题):

注意:很多<#博客#>都说使用宏,会消耗很多内存,我这验证并不会生成很多内存,宏定义的是常量,常量都放在常量区,只会生成一份内存。

// 常见的常量:抽成宏
#define CCAccount @"account"
#define CCUserDefault [NSUserDefaults standardUserDefaults]
// 字符串常量static NSString * const account = @"account";
- (void)viewDidLoad { [super viewDidLoad]; 
// 偏好设置存储 
// 使用宏
 [CCUserDefault setValue:@"123" forKey: CCAccount]; 
// 使用const常量
 [[NSUserDefaults standardUserDefaults] setValue:@"123" forKey:account];}

二、const作用:限制类型

const基本使用

- (void)viewDidLoad { 
[super viewDidLoad]; 
 // 定义变量 int a = 1;
 // 允许修改值 a = 20; 
// const两种用法
 // const:修饰基本变量p 
// 这两种写法是一样的,const只修饰右边的基本变量b 
const int b = 20;// b:只读变量 
int const b = 20; // b:只读变量 
// 不允许修改值 
b = 1;
 // const:修饰指针变量*p,带*的变量,就是指针变量.
 // 定义一个指向int类型的指针变量,指向a的地址 
int *p = &a; int c = 10; p = &c;
// 允许修改p指向的地址,
// 允许修改p访问内存空间的值
*p = 20;
 // const修饰指针变量访问的内存空间,修饰的是右边*p1,
 // 两种方式一样
 const int *p1; // *p1:常量 p1:变量 
int const *p1; // *p1:常量 p1:变量
 // const修饰指针变量p1
 int * const p1; // *p1:变量 p1:常量 
// 第一个const修饰*p1 第二个const修饰 p1 
// 两种方式一样 
const int * const p1; // *p1:常量 p1:常量
 int const * const p1; // *p1:常量 p1:常量
}

三、const开发中使用场景:

四、static和extern简单使用(要使用一个东西,先了解其作用)

static作用:

五、static与const联合使用

六、extern与const联合使用

上一篇下一篇

猜你喜欢

热点阅读