纠结的const(static) 和 define
来源:互联网 发布:dikies是什么档次知乎 编辑:程序博客网 时间:2024/05/28 20:20
const(static) 和 define 在开发中常用来定义常量,这样做的好处是:使代码更易维护、提高代码的效率。
1、const(static)
const是C/C++中的一个关键字(修饰符),const一般用来定义一个常量,既然叫做常量,即以后再也不能修改其值。
const 定义常量时,编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率比宏定义要高。从汇编的角度来看,只是给出了对应的内存地址,所以,const定义的常量在程序运行过程中只有一份拷贝。
const 定义常量时,通常是同时定义常量的类型、值,且常与 static 结合使用。
如:
2、define
define, 宏定义, 则是一条预编译指令, 编译器在编译阶段会将所有使用到宏的地方简单地进行替换。
define 定义常量时,在内存中有若干个拷贝。
define 定义常量时,只是定义了常量的值,但未做类型设置。
define 除了定义常量外,还能进行高级宏定义功能
如:定义函数;定义OC中常用的单例模式;还能根据传参数生成字符串。
1、const(static)
const是C/C++中的一个关键字(修饰符),const一般用来定义一个常量,既然叫做常量,即以后再也不能修改其值。
const 定义常量时,编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率比宏定义要高。从汇编的角度来看,只是给出了对应的内存地址,所以,const定义的常量在程序运行过程中只有一份拷贝。
const 定义常量时,通常是同时定义常量的类型、值,且常与 static 结合使用。
如:
2、define
define, 宏定义, 则是一条预编译指令, 编译器在编译阶段会将所有使用到宏的地方简单地进行替换。
define 定义常量时,在内存中有若干个拷贝。
define 定义常量时,只是定义了常量的值,但未做类型设置。
define 除了定义常量外,还能进行高级宏定义功能
如:定义函数;定义OC中常用的单例模式;还能根据传参数生成字符串。
个人建议在确定了使用的常量类型,及常量值时使用 const 进行定义;而简单的函数,或传参字符串等高级定义时,则使用 define 进行宏定义。
1 0
- 纠结的const(static) 和 define
- static、const、extern和define的区别
- iOS#define和static const
- const和define区别 static
- php中static、const和define的区别
- C++学习之inline、#define、const和static的解释
- php中static、const和define的区别
- C++中const,define和static的区别
- C++中define、const和static的区别
- php5中const、define和static
- php5中const、define和static
- Objective-c #define 和 static const
- ASSERT()和assert() | const,static和volatile要注意的几个问题 |define宏与const区别
- ASSERT()和assert() | const,static和volatile要注意的几个问题 |define宏与const区别
- static,const,inline,define的产生背景
- const, static, define 以及inline的区别
- #define,const ,static 的使用总结
- static、const、define的一些理解
- Github上传代码Mac
- jeesite框架学习—shiro权限。
- php操作redis群集开源工具
- Python 的pytesscer 的识别功能初探
- Java Object 线程方法
- 纠结的const(static) 和 define
- 静态网站生成器(开源项目)
- Vickate_iOS_浅说NSOperationQueue、GCD、NSThread
- 1004. 成绩排名 (20)
- iOS 中关于Copy的疑问汇总
- 【MySQL】Innodb 恢复工具介绍
- Qt之qInstallMessageHandler(实践)
- 线性代数——矩阵乘积的代码实现
- Mysql date,datetime的区别以及相互转换