您的位置:首页 > 产品设计 > UI/UE

为什么要用大写的那些类型修饰符?如INT与int、BOOL与bool、UINT等...

2009-01-12 17:51 302 查看
一般的任何一个正规的项目开发第一件事情要做的就是在开发环境上架一层自己的环境,主要包括类型定义、内存管理和文件管理。主要的目的是为了代码的可移植性和可维护性。

例如在标准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这样,是因为没有看过其他公司的东西,如果有机会到一个大的软件企业工作就全明白了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐