尽量用static const替代预处理指令
来源:互联网 发布:java高级程序员面试题 编辑:程序博客网 时间:2024/05/16 08:54
变量一定要同时用static和const来声明,而尽量不要用预处理指令
static修饰符表示该变量仅在定义此变量的编译单元(实现文件,也就是.m文件)中可见。编译器每收到一个编译单元,就会
输出一份目标文件(object file)。如果不加static修饰符,编译器会创建一个外部符号(external symbol),那么如果在其他编
译单元中声明了同名变量,编译器就会报错:
duplicate symbol _kTest in:Test1.oTest2.o
用static const定义的变量,相当于#define预处理指令一样,但是会有类型信息。相对的extern就是一个外部声明,也就是说,在Test1文件里修饰的变量,要想在Test2文件里访问,就需要加上extern修饰。当编译器看到extern关键字时,就会允许代码使用此常量,而不用去查看他的定义。一般不要使用预处理指令定义常量,这样定义出来的常量不含有类型信息,编译器只是会在编译前据此执行查找与替换操作,即使有人重新定义了常量值,编译器也不会产生警告信息,此会导致常量值不一致。
0 0
- 尽量用static const替代预处理指令
- 使用static、 const替代宏
- 尽量用类型化的常量替代预处理器的 #DEFINE 方法
- 尽量用类型化的常量替代预处理器的 #DEFINE 方法
- 预处理、const、static与sizeof
- 【面试】预处理 const static sizeof
- iOS Objecttive-C语言 定义常量的几种方式与区别 static const 定义常量 少用#define预处理指令 多用类型常量
- 预处理、const、static与sizeof(一)
- 预处理、const、static与sizeof(二)(
- 面试题(2)预处理、const、static、sizeof
- 预处理指令、typedef、static和extern
- 尽量用编译器而不用预处理
- Effective C++(一)尽量使用const和inline来替代#define
- cmpy指令用mpy32替代
- [effectiv c++]条款2:尽量以const,enum,inline替换#define(static,const定义式)
- C预处理器、作用域、static、const、内存管理
- 黑马程序员 C语言 - 09 预处理指令、typedef、extern、static
- C语言—预处理指令、static和extern、递归
- 一致性哈希java实现
- 可编辑可自动匹配的联动下拉框实现
- mybatis插入数据之后获得主键值
- SWF文件格式2(中文翻译版)
- Animation动画详解(九)——联合动画的代码实现
- 尽量用static const替代预处理指令
- leetcode--Reverse Bits
- 第一天
- 微信公众平台开发教程
- Android逆向分析(2) APK的打包与安装背后的故事
- 读《借助开源项目,学习软件开发》总结
- The 9th Zhejiang Provincial Collegiate Programming Contest->Problem D:D - Draw Something Cheat
- Retrofit源码解析
- 27-题目1019:简单计算器