zoukankan      html  css  js  c++  java
  • Objective C 中的BOOL, bool, Boolean理解

    一、 
    1、类型不同 
    BOOL为int型 
    bool为布尔型 
    2、长度不同 
    bool只有一个字节 
    BOOL长度视实际环境来定,一般可认为是4个字节 
    3、取值不同 
    bool取值false和true,是0和1的区别 
    BOOL取值FALSE和TRUE,是0和非0的区别 
    二: 
    bool是标准C++数据类型,可取值true和false。单独占一个字节, 
    如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。 

    BOOL是微软定义的typedef int BOOL。与bool不同,它是一个三值逻辑, 
    TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。 
    Win32 API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage(). 
    三: 
    大BOOL和小bool之间的区别: 
    1、类型不同 
    BOOL为int型 
    bool为布尔型 
    2、长度不同 
    bool只有一个字节 
    BOOL长度视实际环境来定,一般可认为是4个字节 
    3、取值不同 
    bool取值false和true,是0和1的区别 
    BOOL取值FALSE和TRUE,是0和非0的区别 
    4、例子 
    bool x=3;  //告警 
    bool x=1;  //正确 
    BOOL x=3;  //正确 
    BOOL x=3.3;  //告警 
    注:windows为了兼容问题定义的基础变量。 
    typedef unsigned long        DWORD; 
    typedef int                  BOOL; 
    typedef unsigned char        BYTE; 
    typedef unsigned short      WORD; 
    typedef float                FLOAT; 
    typedef FLOAT                *PFLOAT; 
    typedef BOOL near            *PBOOL; 
    typedef BOOL far            *LPBOOL; 
    typedef BYTE near            *PBYTE; 
    typedef BYTE far            *LPBYTE; 
    typedef int near            *PINT; 
    typedef int far              *LPINT;

    NameTypedefHeaderTrue ValueFalse Value
    BOOL signed char objc.h YES NO
    bool _Bool (int) stdbool.h true false
    Boolean unsigned char MacTypes.h TRUE FALSE
    NSNumber __NSCFBoolean Foundation.h @(YES) @(NO)
    CFBooleanRef struct CoreFoundation.h
  • 相关阅读:
    iphone界面详解
    Spring jdbcTemplate.queryForInt(sql)的奇怪问题,呵呵
    BCP 高效批量导入
    eclipse中javascript显示为乱码的解决办法
    spring jdbcTemplate返回RS
    Spring IOC DI 形象理解
    MOSS 2007 文档库事件处理
    showModalDialog和showModelessDialog使用心得
    XMLHTTP.open权限不够的解决
    体现JAVA中的面向对象思想,接口(抽象类)的用处 :饲养员给动物喂食物
  • 原文地址:https://www.cnblogs.com/bigshow1949/p/7047430.html
Copyright © 2011-2022 走看看