mfc中为何要为一些关键字用大写重新进行宏定义呢?如:true 定义成 TRUE
-------------------------------------------
c++中的很多关键是是小写,如true,false等,这些关键字,在mfc中都用大写重新定义了一次,如:
true 重新定义为 TRUE
false 重定义为 FALSE我不知为何增加这么多的宏定义呢?宏定义本来就很多了,可是为何将这些关键字重新定义呢?
而且仅仅是改成大写,有什么必要呢?当然我知道这样做是有原因的,但是我就是想不出来,请大家解惑。
谢谢。 为何要增加这么多的宏定义呢?问题是仅仅将小写改成大写呀?有何意义呢?
-------------------------------------------
c++中的很多关键是是小写,如true,false等,这些关键字,在mfc中都用大写重新定义了一次,如:
true 重新定义为 TRUE
false 重定义为 FALSE我不知为何增加这么多的宏定义呢?宏定义本来就很多了,可是为何将这些关键字重新定义呢?
而且仅仅是改成大写,有什么必要呢?当然我知道这样做是有原因的,但是我就是想不出来,请大家解惑。
谢谢。 为何要增加这么多的宏定义呢?问题是仅仅将小写改成大写呀?有何意义呢?
其次,TRUE定义的值是1,FALSE是0,而不是true和false,所以不存在重定义的问题
第三,用宏定义代替具体的值是一个好习惯,方便以后升级或者批量修改
false 重定义为 FALSE
==========
谁说TRUE和FALSE是由true和false重新定义的啊?这两者根本就不是同一个类型,true和flase是bool型的变量的两个取值,而BOOL型并不是bool型,BOOL就是int,而TRUE和FALSE前者是1,后者是0,它们是由int型重定义的。另外,这些宏并不是MFC专用的,而是SDK中定义的。
--------------------------
但是实际上,这样做没有意义呀?
bool实际有效的值就是0和1呀?
true,false是C++的
true,false是boolean(布尔型)的值TRUE,FALSE是BOOL的值
BOOL是int的宏
一般
TRUE对应1
FALSE对应0语言要扩展才能适合现代编程
除 TRUE 和 FALSE 外还有几乎所有的类型(BYTE、CHAR、INT、LONG、DOUBLE、FLOAT……)
[code]
//Any type.
//This type is declared in WinNT.h as follows:
#define VOID void
[/code]
#define VOID void