为什么要用大写的那些类型修饰符?如INT与int

一般的任何一个正规的项目开发第一件事情要做的就是在开发环境上架一层自己的环境,主要包括类型定义、内存管理和文件管理。主要的目的是为了代码的可移植性和可维护性。  
   
  例如在标准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这样,是因为没有看过其他公司的东西,如果有机会到一个大的软件企业工作就全明白了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yjn001/archive/2009/01/12/3761709.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章