为什么要用大写的那些类型修饰符?如INT与int、BOOL与bool、UINT等...
来源:互联网 发布:天刀捏脸数据男钟汉良 编辑:程序博客网 时间:2024/06/05 19:29
一般的任何一个正规的项目开发第一件事情要做的就是在开发环境上架一层自己的环境,主要包括类型定义、内存管理和文件管理。主要的目的是为了代码的可移植性和可维护性。
例如在标准C的环境下,16位处理器的int是16位,32位处理器的int却是32位。如果我想用一个int值来做标记,定义其倒数第2位的意义,在处理bit的时候的代码就没法写,因为不知道到底应该把标记右移几位才能到倒数第二位。这时候一个长度固定的变量是很重要的,例如我想要16位的值。这时就可以写
//在32位平台
#ifdef __WIN32__
#define INT short int
#else
//在16位平台
#define INT int
#endif
以后就用INT好了,不用再担心int到底是几位。
另外一点就是语言本身的标准和编译器厂商对标准的支持。以C++为例,直到98年才出台第一个标准,在那之前不同编译器的C++有细节上的不同。其中之一就是bool值。其实在标准出现之后,编译器厂商也不一定就支持全部标准。(一个最明显的例子就是VC6)。这样对于bool值,如果你用的是支持bool的C++编译器,就可以
#define BOOL bool
对于不支持bool关键字的,就可以
#define BOOL unsinged long
其他类似的还有一些C++模板的关键字。
对于内存管理,也可以这样设定,例如MFC中很明显就有
#ifdef DEBUG
#define new DEBUG_NEW
#endif
总之,最终的目的就是使代码尽量不受编译平台、编译器的限制。如果非得要限制的话,也要把在更新平台和编译器后所需要的改动量降到最小。楼主只看到MFC这样,是因为没有看过其他公司的东西,如果有机会到一个大的软件企业工作就全明白了。
例如在标准C的环境下,16位处理器的int是16位,32位处理器的int却是32位。如果我想用一个int值来做标记,定义其倒数第2位的意义,在处理bit的时候的代码就没法写,因为不知道到底应该把标记右移几位才能到倒数第二位。这时候一个长度固定的变量是很重要的,例如我想要16位的值。这时就可以写
//在32位平台
#ifdef __WIN32__
#define INT short int
#else
//在16位平台
#define INT int
#endif
以后就用INT好了,不用再担心int到底是几位。
另外一点就是语言本身的标准和编译器厂商对标准的支持。以C++为例,直到98年才出台第一个标准,在那之前不同编译器的C++有细节上的不同。其中之一就是bool值。其实在标准出现之后,编译器厂商也不一定就支持全部标准。(一个最明显的例子就是VC6)。这样对于bool值,如果你用的是支持bool的C++编译器,就可以
#define BOOL bool
对于不支持bool关键字的,就可以
#define BOOL unsinged long
其他类似的还有一些C++模板的关键字。
对于内存管理,也可以这样设定,例如MFC中很明显就有
#ifdef DEBUG
#define new DEBUG_NEW
#endif
总之,最终的目的就是使代码尽量不受编译平台、编译器的限制。如果非得要限制的话,也要把在更新平台和编译器后所需要的改动量降到最小。楼主只看到MFC这样,是因为没有看过其他公司的东西,如果有机会到一个大的软件企业工作就全明白了。
- 为什么要用大写的那些类型修饰符?如INT与int、BOOL与bool、UINT等...
- 为什么要用大写的那些类型修饰符?如INT与int
- bool 与 int
- 字符串解析出int和bool等类型的值
- bool float int与“零值”的比较,那些快要忘却的
- BOOL与bool类型的区别
- 分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句
- BOOL,int,float,指针类型的变量a 与“零”的比较语句
- 分别写出BOOL,int,float,指针类型的变量a与“零”的比较语句
- 分别写出BOOL,int,float,指针类型的 变量a与零相比的语句
- 分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句
- C# bool 与 int string 的对应关系
- bool、int、float、double变量与0值的比较
- int、bool、float、指针变量与“零值”的比较
- 复杂类型(除int,uint,number,string,bool)比较运行情况
- 关于uint与int
- int与uint类型之间转换过程中值的变化
- BOOL 与bool 的区别
- C#锁定EXCEL工作表
- Delphi 常用文档资料之一Paradox数据类型和长度表
- how use procedure with sybase database?
- flash和javascript之间的通讯
- phplib template中文教程
- 为什么要用大写的那些类型修饰符?如INT与int、BOOL与bool、UINT等...
- jquery 学习资料
- 特殊的数组赋值
- 管理信息系统需求调研分析指南
- web.xml配置文件祥解
- 控件的颜色设置(本景色,文本色,文本背景色)
- 图形码 图形验证码
- php zend 相对路径问题
- 配方奶粉,尽量不用鲜奶