ios - Objective-c里各种布尔类型什么区别
大家讲道理
大家讲道理 2017-04-17 11:20:20
[iOS讨论组]
boolean_t t;
Boolean tt;
BOOL ttt;
bool tttt;

这四种布尔类型有什么区别?
我看很多框架里的方法都用 BOOL 为什么?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
ringa_lee

bool 是int
BOOL 是char

bool b1 当b1>0 就=YES
BOOL b2 当b2=1 才=YES

所以框架都用BOOL

Boolean mac os上有历史意义的类型

Boolean types and values
    
        Boolean         Mac OS historic type, sizeof(Boolean)==1
        bool            Defined in stdbool.h, ISO C/C++ standard type
        false           Now defined in stdbool.h
        true            Now defined in stdbool.h

boolean_t i386

/*
 *	File:	boolean.h
 *
 *	Boolean type, for I386.
 */

#ifndef	_MACH_I386_BOOLEAN_H_
#define _MACH_I386_BOOLEAN_H_

#if defined(__x86_64__) && !defined(KERNEL)
typedef unsigned int	boolean_t;
#else
typedef int		boolean_t;
#endif

#endif	/* _MACH_I386_BOOLEAN_H_ */
伊谢尔伦

补充一下
typedef signed char BOOL;
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C"
// even if -funsigned-char is used.

  • define OBJC_BOOL_DEFINED
  • define YES (BOOL)1
  • define NO (BOOL)0
大家讲道理

boolean_t t1 = 1;//int type
Boolean t2 = 1; //unsigned char type
BOOL t3 = 4;//YES or NO
bool t4 = 1;//true or false

NSAssert(t1, @"boolean_t t1 is NO");//通过测试
NSAssert(t2, @"boolean_t t2 is NO");//通过测试
NSAssert(t3, @"boolean_t t3 is NO");//通过测试
NSAssert(t4, @"boolean_t t4 is NO");//通过测试

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号