• 每日一问7:bool和BOOL的区别


    1.类型不同

    BOOL为int 型;bool为布尔型。

    2.长度不同

    bool只有一个字节;BOOL长度根据实际环境确定,一般为4字节。

    3.取值不同

    bool取值false和true,是0和1的区别。给bool赋值时,除了false和true,可用任何整型的数据如int,char,double等,但bool型数据只会把0以及0.0识别为false,其他识别为true。

    BOOL是微软为了兼容问题而定义的,包含在头文件 windows.h中,typedef int BOOL,是一个三值逻辑,TRUE/FALSE/ERROR,返回值大于0的整数为TRUE,等于0为FALSE,-1为ERROR。

    #include<iostream>
    #include<Windows.h>
    
    using namespace std;
    int main() {
    	
    	bool a = -100;
    	bool b = 4;
    	bool c = 0;
    	cout << a << ends << b << ends << c <<endl; 
    	BOOL A = -100;
    	BOOL B = 3;
    	BOOL C = 0;
    	cout << A << ends << B << ends << C <<endl;
    	return 0;
    }
    

    运行结果如下:

    可以看出,bool的取值只有false和true,非零值被转为true,零被转为false。
    BOOL是int型,可取所有int值,当值为0时,可认为时FALSE,当值为1时,可看作TRUE。这里可以看看FALSE/TRUE在windef.h的定义:

    #ifndef FALSE
    
    #define FALSE 0
    
    #endif
    
    #ifndef TRUE
    
    #define TRUE 1
    
    #endif
    

    为什么需要BOOL?

    BOOL是微软定义的typedef int BOOL,用途是解决程序在C与C++中环境的差异。

    使用上的注意

    • 如果是写标准的C++,那么就全用bool;
    • 如果是写vc++,就尽量使用BOOL,避免转换产生的性能警告。
  • 相关阅读:
    centos 安装mysql
    mysql中文排序
    在Centos中yum安装和卸载软件的使用方法
    gcc升级方法
    tar命令
    wget命令
    php7安装及和php5的共存
    PHP SESSION 保存到数据库
    setTimeout延时0毫秒的作用和问题
    css display visibility
  • 原文地址:https://www.cnblogs.com/honernan/p/14082590.html
Copyright © 2020-2023  润新知