Objective-C中的BOOL和bool


    BOOL t3=1024;

if (t3) {
NSLog(@"yes");
}else{
NSLog(@"no");
}

输出:

Test[1524:60b] no

typedef signed char BOOL;

BOOL 使用了一个8 位(一个字节)的整数进行表示,低八位8 位全0
就是NO。所以非0数并非就是BOOL中的YES,但是0就一定是NO;建议BOOL就只使用YES和NO;

再来看看bool;


    bool t3=1024;

if (t3) {
NSLog(@"yes");
}else{
NSLog(@"no");
}

输出:

Test[1592:60b] yes

bool定义为int,因为C语言中的假值就只有一个0,所以t3为非0值输出为yes;

时间: 2024-10-03 05:32:19

Objective-C中的BOOL和bool的相关文章

c++ 中 BOOL与bool TRUE与true FALSE与false 区别 (转载)

http://blog.chinaunix.net/uid-28458801-id-3941112.html FALSE/TRUE与false/true的区别 1.FALSE/TRUE与false/true的区别: false/true是标准C++语言里新增的关键字,而FALSE/TRUE是通过#define,这要用途 是解决程序在C与C++中环境的差异,以下是FALSE/TRUE在windef.h的定义: #ifndef FALSE #define FALSE 0 #endif #ifndef

C++中UINT32和INT32以及int,BOOL和bool的区别

在AndroidHAL层开发中,编写C++代码的时候,遇到了数据类型的困扰,经过查找资料,总结如下: 1.UNIT32和int以及INT32的区别: (1).int默认是signed int.也就是有符号整型,最高位是符号位.数据只占31位. (2).INT32是unsigned int的别名.typedef unsigned int UINT32 unsigned int是无符号整型,最高位也是数据位,数据占32位. (3).INT32表示32位有符号的整数. (4).UINT32和INT32

objective C中的字符串(三)

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7343561 objective C中的字符串操作 在OC中创建字符串时,一般不使用C的方法,因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方,在Cocoa中NSString集成的一些方法,可以很方便的操作字符串,下面举几个例子: 1.创建: 直接利用等号赋值 NSString *

objective C中继承、协议、分类和多态的实现

第一.objective C中继承的实现 在oc中只有实例变量会有权限控制,实例方法和类方法是没有权限控制的,这点与c++不同,OC默认的是protected,并且在声明权限控制时,没有分号 在OC中可以像C++一样用指针运算法来访问实例变量 Rectangle.h 文件代码: #import <Foundation/Foundation.h> @interface Rectangle : NSObject { int _width; int _height; } @property (non

objective C中的字符串

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7343561 objective C中的字符串操作 在OC中创建字符串时,一般不使用C的方法,因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方,在Cocoa中NSString集成的一些方法,可以很方便的操作字符串,下面举几个例子: 1.创建: 直接利用等号赋值 NSString *

bool和BOOL类型知识集合

知识点一.C语言中有bool类型吗? 转自http://blog.csdn.net/liuqiqi677/article/details/6703615 之前一直都没有注意到,最近在用C语言写DSP算法时,偶然间发现我函数中定义的bool类型的变量在VC6.0(我主要用它来检查一下语法错误)中编译居然报错了,说是bool类型没有定义.用了这么久的C和C++了,一直觉得bool这种基本类型,应该是C语言内置的类型,怎么会没有定义呢?事实证明,我的想法完全错误了. 有了网络,一切问题都变得那么容易了

OC -- BOOL与bool的区别

下面的情况,BOOL与bool可以通用 BOOL(bool)  b1 = YES;   // 输出1 BOOL(bool) b2 = 1;    // 输出1 BOOL(bool) b3 = NO;   // 输出0 BOOL(bool) b4 = 0;    // 输出0 BOOL与bool的区别如下: BOOL b5 = 2;   // 输出2 BOOL b6 = -2: // 输出-2 bool b7 = 2;   // 输出1 bool b8 = -2;    // 输出1

c++中istream类型到bool类型的隐式转换

事情的起因是见到了这种用法: while(cin>>m>>n&&m&&n) { } 现在分析一下,cin>>m>>n返回的是一个对istream类型的引用,然后这个返回值又与m做&&运算.已知这种写法是合法的. 可能有两种情况:(1)&&运算符被重载,允许接收istream类型的值. (2)istream类中有成员能将istream类型转换为bool类型. 翻看手册,发现是第二种情况.http:

Objective-C(NSString、BOOL、多文件开发)

NSString 表示oc当中的字符串类 %@是oc当中对象的格式符 printf不能打印oc当中的对象 通过stringWithFormat:这个类方法,打印格式化的字符串 例 int a = 10; NSString * str = [NSString stringWithFormat:@"身高是%i",a]; NSLog(@"%@",str); 通过NSSting当中的求长度的方法,计算字符串的长度 oc当中的求长度的方法,在打印时,是以各国的字符为单位.空格