extern字符串常量,宏定义字符串常量,怎么选

在使用常量的时候,我看到主要有两种写法:
#defineRKLICURegexEnumerationOptionsErrorKey@"RKLICURegexEnumerationOptionsErrorKey"
externNSString*constRKLICURegexEnumerationOptionsErrorKey;
这两种写法孰优孰劣?或者在哪些情况下该用那种写法?
婷婷同学_
浏览 753回答 2
2回答

有只小跳蛙

define只是简单的替换,又称作宏定义、预处理命令。而const是要分配内存空间的,提示编译器遇到此变量和函数时在其他模块中寻找其定义还有就是#define是不会对数据类型进行检查的,而第二种会对数据类型进行安全检查、推荐可以看看这篇文章,对Define与Const分析的比较详细,自己拿捏!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript