美文网首页
define与const

define与const

作者: 宇轩Simid | 来源:发表于2016-04-12 14:10 被阅读0次

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

    相关文章

      网友评论

          本文标题:define与const

          本文链接:https://www.haomeiwen.com/subject/emtwlttx.html