Ios面试复习--const、#define、static、ex
2017-12-18 本文已影响0人
金克拉拉拉拉
1.const 与#define的区别
#define:
--1.预编译(编译前处理)
--2.宏能定义一些函数和方法,const不能,但是大量使用宏会加长编译时间,
--3.宏不会做编译检查
宏并不会做编译检查 宏不会像众多博客上所说 多次分配内存地址const:
--1.编译阶段处理
--2.const 会做编译检查
--3.const 仅仅是修饰右边 的变量(只能呢个修饰变量,基本变量,指针变量,对象变量)
--4.const 修饰的变量,表示只读,不可修改
const 修饰基本变量
const修饰基本变量const修饰指针变量
const 修饰指针变量2.static 和 extern 的使用
static 的作用
--1.修饰局部变量(
1.会延长该局部变量的生命周期,只要程序运行就会分配一次内存,局部变量会一直存在;
验证static 修饰过的变量只会被分配一次内存,局部变量会一直存在2.该局部变量只会分配一次内存
--2.修饰全局变量
只会修改全局变量的作用域,表示只能是当前文件内使用
Extern 的作用
声明一个全局变量,不能定义变量
注意 extern 修饰的变量不能初始化
一般用于声明全局变量