VC里,
大写的TRUE,FALSE和小写的true,false是一样的吗?

解决方案 »

  1.   

    理论上是不一样的,但你不必去刻意区别他们。TRUE,FALSE是C语言里的东西。C语言语法规则里有bool型数据类型,但设计C编译器时没有设计bool型这个数据类型,因此它定义了两个宏来表示bool型数据TRUE被定义为1,FALSE被定义为0。请记住TRUE,FALSE是宏,他们被定义在stdlib.h头文件中。因此,如果你的程序没有包含stdlib.h,编译器是不认识TRUE,FALSE的。同时,C编译器永远也不认识true,false。到了C++,他的编译器设计了bool型数据,也就是true,false。因此true,false是C++中的关键字,不用包含任何头文件,C++编译器都会认识。同时C++对C是兼容的,因此只要你包含了stdlib.h头文件,TRUE,FALSE也是被C++认可的。建议:在C++中坚持使用true,false!!
      

  2.   

    TRUE,FALSE 是win32中使用的类型
    true,false是vc中使用的类型
      

  3.   

    补充:
    TRUE,FALSE在不同的系统下占用的内存是不同的。
    true,flse是一个byte.在不同的系统下是相同的。
      

  4.   

    不一样
    BOOL b = 3; (BOOK <=> UINT)
    b可以!=TRUE,也可以!=FALSEbool b;
    b!=true那么b=false
      

  5.   

    如果你用if(b)的话可以说是一样的
    如果用if(b==TRUE)或if(b==FALSE)的话,那么是不一样的
      

  6.   

    1.FALSE/TRUE与false/true的区别: false/true是标准C++语言里新增的关键字,而FALSE/TRUE是通过#define,这要用途是解决程序在C与C++中环境的差异,以下是FALSE/TRUE在windef.h的定义:#ifndef FALSE
    #define FALSE 0
    #endif#ifndef TRUE
    #define TRUE 1
    #endif
    也就是说FALSE/TRUE是int类型,而false/true是bool类型;所以两者不一样的,只不过我们在使用中没有这种感觉,因为C++会帮你做隐式转换。2.bool的大小与BOOL的区别:bool在C++里是占用1字节,而BOOL是int类型,int类型的大小是视具体环境而定的;所以来说:false/true只占用1个字节,而TRUE/FALSE视具体环境而言,以下是BOOL在windef.h中的定义:typedef int BOOL;