iOS中define宏和const常变量的区别
2017-09-19 本文已影响0人
我是小范范呀
1、其实不仅是iOS中,c及c++中区别也是如此
2、区别:(1)define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此,在程序运行时,常量表中并没有define定义的常量,系统不为他分配内存。const在程序运行时存在于常量表中,系统为他分配了内存;(2)define定义的常量在预编译处理时只是进行了替换,并不能进行数据类型检验;const定义的常量,在预编译时进行严格的数据检验
3、define定义的常量要注意“边缘效应”,如下举例什么是“边缘效应”
#define a 2+3,,,那么a / 2结果应该是什么呢?“边缘效应”的结果是——3,,,而你希望得到——2;所以你定义时应该这样:#define a (2+3)
4、NSString * const a = @"6666"-----和NSString const *a =@"6666"的区别