define与const

在开发中我们经常用到define和const,那么他们怎么使用,区别在哪里:

define:

宏定义,他只是在编译器预处理的时候加载,没有任何类型,也不做任何类型的检查,会出现在内存的代码区域,大量使用会导致二进制文件变大。

const:

1.变量,使用到的地方其实都共享一块内存空间,不会申请N多内存空间,可以修改。

2.常量,使用到的地方其实都共享一块内存空间,不会申请N多内存空间,可以修改。但是可以根据const 的修饰来确定谁是否可变!

苹果API就是这样写的:

NSString *str =@"zyx";

const NSString *str1 =@"zyx";

NSString const *str2 =@"zyx";

NSString * const str3 =@"zyx";

这四个有什么不同:

1.是最普通的一个字符串变量,就不提了,经常用。

2.字符串str1被const修饰,*str1不能被修改,str可以被修改。

3.字符串str2被const修饰,*str2不能被修改,str可以被修改。2、3没什么区别。

4.这样的写法,str3不能被修改,*str3可以被修改。

看出来了吗?

总结:const右边的不能被修改。

所以我们定义一个常量却不想修改:NSString * const str =@"zyx";


一般在项目里,会把一些经常用的常量写在一个自定义Object类里:

1.定义的一些常量

2.给外部提供的变量链接

3.其他类调用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容