object-c中的BOOL类型
Posted ZHOU YANG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了object-c中的BOOL类型相关的知识,希望对你有一定的参考价值。
object-c中的布尔类型比C语言中的bool类型早了10年,它具有YES和NO两种值。在object-c中的布尔类型BOOL实际上是一种带符号的字符类型(signed char),它使用的空间是1byte,即8bit,其中YES定义为1,NO定义为0。将大于1字节的整形数(比如short或者int)赋给BOOL变量,会被截断处理,只保留末尾的8个bit。
以下是object-c中使用BOOL类型的例子:
#import <Foundation/Foundation.h> //比较两个int数是否一样 BOOL areINTsDifferent(int thing1,int thing2){ if(thing1==thing2) return NO; else return YES; } //返回BOOL类型的数对应的NSString字符串 NSString * boolString(BOOL yesNo){ if(yesNo==YES) return @"YES"; else return @"NO"; } int main(int argc, const char * argv[]) { BOOL areTheyDifferent ; areTheyDifferent= areINTsDifferent(6,6); //下面的%@表示NSString占位符 NSLog(@"are %d and %d different? %@",6,6,boolString(areTheyDifferent)); areTheyDifferent = areINTsDifferent(23,42); NSLog(@"are %d and %d different? %@",23,42,boolString(areTheyDifferent)); return 0; }
输出的结果:
2016-04-04 23:18:48.964 hello-obj[1267:84194] are 6 and 6 different? NO 2016-04-04 23:18:48.965 hello-obj[1267:84194] are 23 and 42 different? YES
以上是关于object-c中的BOOL类型的主要内容,如果未能解决你的问题,请参考以下文章
Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段
Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段
Object-C 中的 Swift 代码:“ClassName”没有可见的@interface 声明选择器“alloc”