常量非常量主要分析点在于堆内存区的读写特性。
底层clang编译器编译机制作用下,不推荐将字符串常量抽像成宏符号。
宏符号 与 字符串常量 比较:
1.编译时刻:宏符号是预编译(正式编译之前先替换处理),const是编译阶段检查。
2.编译阶段检查:宏符号不做检查,不会报宏符号替换的编译错误,只是单纯的替换,const会进行编译检查,会在编译阶段报语法错误。
3.宏好处:某些函数,方法可以通过宏符号替换。 const常量堆内存区不能代替函数、方法。
4.宏坏处:使用大量宏符号,每次都需要大量的预编译时间作重新替换,使得整个编译过程耗时更久。
const介绍:
const关键字仅用于修饰定义声明指令中右边的声明字段名
-
(void)constUsingStyle {
//字段名称栈器皿持有的堆内存区默认模式可读可写(远程访问读取/远程访问写入修改(二次赋值))
//基本数据类型字段名直接在栈层级写入修改
int a = 1;
a = 20;//关键字const用法:1.修饰基本类型字段名称栈器皿(只读/声明时初值) 2.
// const int b = 20;//只读特性(不支持远程访问写入修改(二次赋值))
// b = 1;//const:修饰*指针变量p,带*的变量,就是指针变量. //基本数据类型直接声明字段名(普通字段名称)写入内容; int const b = 20;//只读特性 //基本数据类型补充*指针声明出带有基本数据类型*指针风格的指针型字段名 //备注:基本数据类型直接声明字段名不带*标志(int const b的声明效果和co