在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一.const 1>对于const,记住关键的一点,它只是修饰右边的变量. 例如: - (void)viewDidLoad { [super viewDidLoad]; // const两种用法 // const:修饰基本变量p // 这两种写法是一样的,const只修饰右边的基本变量b const int b = 20; // b:只读变量 int const b = 20; // b:只读变量 2>对于const的应用场景 //如果我需要一个方法,参数是地址,只能通过地址获取值,不能修改地址 //*a 只读 不能修改*a - (void)test:(const int *)a{ a = 20; } //如果不能修改a的值,只能修改a访问的值 //a 只读 不能修改a - (void)test1:(int * const)a{ *a = 20; } 3>const和宏的区别 (1)宏是预编译执行,const是编译执行. (2)宏不会做编译检查,它只是做替换,因此不会编译报错;const会编译检查,会编译报错. (3)宏能定义方法或函数,const不能. (4)大量使用宏会造成编译时间长久. (5)注意:大量使用宏并不会消耗很多内存,宏定义的是常量,常量是存放在常量去,只生成一份内存,并不像有些人所说的会消耗很多内存! 二.static和extern 1>static作用: (1)修饰局部变量 1)延长局部变量的声明周期,程序结束才销毁 2)局部变量只初始化一次,节省内存 3)改变作用域 (2)修饰全局变量 1)只能在本文件中访问,修改全局变量作用域,生命周期不改变 2)避免重复定义全局变量 2>extern作用: (1)只是用来获取全局变量的值,不能用来定义变量 (2)工作原理是先在本文件中查找有没有全局变量,没有找到的话再去其他文件中查找. 三.static和const一起使用 1>防止重复声明全局变量 2>不希望同事无意中修改变量,只允许读取 3>声明一个静态的全局只读常量 四.extern与const一起使用 1>在多个文件中经常使用同一个字符串常量,用extern和const组合使用 2>一般建一个GlobeConst |
请发表评论