const:c语音关键字 是一个修饰符 被const修饰后就意味着"只读"不能被修改 .当用字符串常量时,苹果官方推荐使用const.
const int a;
int const a;
const int *a;
int * const a;
int const * a const;
const定义的右边的是不可以改变的,也就是说const修饰的是它右边的部分。
前两个的作用是一样,a是一个常整型数。
第三个意味着a是一个指向常整型数的指针(也就是,指向的整型数是不可修改的,但指针可以,此最常见于函数的参数,当你只引用传进来指针所指向的值时应该加上const修饰符,程序中修改编译就不通过,可以减少程序的bug)。
第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。
最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。
一:宏的常见用法:
1:常用的字符串常量抽成宏
2:常用的代码块抽成宏
const的用法:
当用字符串常量的时候,苹果官方推荐使用const
区别:
1:编译时刻:宏:预编译(xcode刚到有#就会预编译);const:编译时刻
2:编译检查:宏:编译时不会检查;const:编译是会检查
3:宏的好处:可以定义代码
4:宏的坏处:编译时间过长,因此建议常用的字符串常量用const修饰
二:static的作用:
1:修饰 局部变量:
延长这个局部变量的生命周期,只要程序运行,局部变量就会一直存在
局部变量只会分配一次内存,因为用static修饰的代码只会在程序一启动就会执行,以后就不会执行
2:修饰全局变量:
只会修饰全局变量的 作用域,表示只会在是当前文件内使用。