美文网首页
#define定义和const定义

#define定义和const定义

作者: 落魄的iOS程序员 | 来源:发表于2021-04-12 17:30 被阅读0次

#define是定义宏的指令,程序在预处理阶段将宏展开在使用的位置替换,程序在运行的时候系统不会分配内存,在编译的时候也不会检测数据类型,所以有出错的风险,在使用#define定义宏的时候要考虑边缘效应,如定义一个返回两个数的最小值宏的时候要考虑传入值可能情况,可参考系统的MIN定义

const定义的常量在程序运行时存放在常量表中,系统会为const定义的常量分配内存,在编译的时候也会进行类型检查,所以使用const在一定程度上提高程序的安全性和可靠性。

这里在定义变量的时候建议选择使用const,尽量少使用#define宏定义,const定义的是不可修改的,在使用const的时候需要注意,基本数据类型定义的时候const NSInteger age和NSInteger const age是一样的,age都是不可修改如何自定义NSString就不一样,如:

const NSString  * name = @"xiao ming";

p name 打印指针:(__NSCFConstantString *) $0 = 0x000000010e65b480 @"xiao ming"

然后赋值:name = @"xiao hua";

p name 打印指针:(__NSCFConstantString *) $1 = 0x000000010e65b4a0 @"xiao hua"

发现指针变了,所以const NSString  * name修饰的是值不能修改,而name是指针,需要注意,应该NSString  *const name这样定义,const修饰指针,那么指针name就不可修改。

相关文章

  • #define定义和const定义

    #define是定义宏的指令,程序在预处理阶段将宏展开在使用的位置替换,程序在运行的时候系统不会分配内存,在编译的...

  • C++中const和#define的利弊探索

    const和#define的利弊,从而推导const的意义; const和#define都有类似的功能,那就是定义...

  • #define和const

    c语言只有#define,c++可以用#define和const来定义常量。const比#define更具优势。 ...

  • iOS技术基础

    一、define定义的宏和const定义的常量有什么区别? define定义宏的指令,程序在预处理阶段将用#def...

  • const 和 #define区别对待

    const和#define都可以用来定义常量 const:用来定义一个常量, 其实在 C++中,const 修饰的...

  • iOS 定义常量

    常量定义的方式: #define extern const static const FOUNDATION_EXP...

  • C++程序设计学习笔记:1 从C走进C++ 关键字const和常

    1 定义常量 关键字const,用于定义常量。例如: 学了 C++ 之后,应该多用const,少用 define。...

  • #define、const、static、extern小结

    define 项目常用字符串及方法代码宏定义(以项目前缀开头) const const 和 define的部分区别...

  • 定义常量

    定义常量的两种形式 使用#define预处理器 使用const关键字 #define和const的不同点 类型和安...

  • 宏定义大总结

    一:用法 1.FOUNDATION_EXPORT 、#define 都是定义宏定义的 2.const 定义常量字符...

网友评论

      本文标题:#define定义和const定义

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