没有躲过的坑--重定义关键字
2015-11-18 19:59
295 查看
从学习编程语言开始,我们就知道变量或是函数的命名不能使用系统的关键字。
但是有时候,你不得不这么做。
比如mac、ios、Android、windows共用一个底层代码,这样为了使底层更加通用,有时候就会忽略某种语言的某个关键字。
也许关键字A对于win32就是一个系统关键字,而A不是objective-c的关键字。
这个时候为了保证代码的通用性,就需要重定义关键字,也就是所说的屏蔽掉系统关键字。
比如对于win32平台,需要屏蔽系统的某个关键字,你就可以这样做:
而上诉代码的第一行,使用的是预编译头。这样就很好的屏蔽了系统的关键字ERROR,而ERROR成为了你定义的枚举类型。
但是有时候,你不得不这么做。
比如mac、ios、Android、windows共用一个底层代码,这样为了使底层更加通用,有时候就会忽略某种语言的某个关键字。
也许关键字A对于win32就是一个系统关键字,而A不是objective-c的关键字。
这个时候为了保证代码的通用性,就需要重定义关键字,也就是所说的屏蔽掉系统关键字。
比如对于win32平台,需要屏蔽系统的某个关键字,你就可以这样做:
#if PLATFORM == WIN32 #undef ERROR #endif enum Type { CHAT = 0, ERROR, UNKNOWN, };
而上诉代码的第一行,使用的是预编译头。这样就很好的屏蔽了系统的关键字ERROR,而ERROR成为了你定义的枚举类型。
相关文章推荐
- C++学习记录之函数返回值为指针的问题
- Android一分钟了解OOM
- iOS 第三方框架-MJExtension
- 第一章 计算系统漫游
- 黑马程序员日记-5
- mysql 增量备份还原
- ADB SERVER的端口被占用
- Apache-Tika解析Word文档
- 邻接矩阵-C++
- 第11周项目1-验证算法(4)哈夫曼编码的算法验证
- 三层交换机实现VLAN间通信
- CANopen对象字典
- HBase内置过滤器的一些总结
- ios _UIImageView
- get post
- Cisco单臂路由配置,图文实例详解
- Storm常见模式5——TimeCacheMap
- Android多点触控
- JAVA运行时异常及常见的5中RuntimeExecption
- 2015.11.18随笔