define与const

2016-04-12  本文已影响0人  宇轩Simid

在开发中我们经常用到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.其他类调用

上一篇 下一篇

猜你喜欢

热点阅读