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.其他类调用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们...
    nero_i阅读 2,773评论 0 0
  • 当我们使用全局共用数据的时候,可以使用宏、常亮、变量 宏: #define HSCoder @"hello"变量:...
    iChuck阅读 2,929评论 0 0
  • 参考:iOS 宏(define)与常量(const)的正确使用 写的比较仔细,推荐用const, 苹果api使用c...
    南风无影阅读 1,183评论 0 0
  • 一、(一共三十题) 1.main() { int a[5]={1,2,3,4,5}; int *ptr=(int ...
    iOS_Alex阅读 4,099评论 0 2
  • 我用原始的方式,给豆苗写了一封信,书写时,真希望豆苗可以给我一个地址,我给她寄过去,或者小树带着豆苗回国时,有机会...
    夏天说早安阅读 1,664评论 4 4