前面我们讲解了OC与C的多文件编译, 这次我们来讲解一下BOOL,BOOL类型只有在OC上才有, C语言是没有的, 那么什么是BOOL呢? 下面让我们一起来看看~~
例子:
#import <Foundation/Foundation.h>
int main()
{
BOOL a1 = YES;
BOOL a2 = NO;
BOOL a3 = 1;
BOOL a4 = 0;
NSLog(@"a1 = %d a2 = %d", a1, a2);
NSLog(@"a3 = %d a4 = %d", a3, a4);
return 0;
}输出的结果:
其实BOOL类型的值只是0和1, 1为YES,0为NO, 那么BOOL的本质又是怎么存储的呢?? 让我们来继续看看~
typedef signed char BOOL; #define YES (BOOL)1 #define NO (BOOL)0
其实BOOL是char类型, 而括号里面的BOOL, 是强行转换, 把YES强行转换为1, 把NO强行转换为0, 但是BOOL的值是当作整型来输出, 所有必须得用%d或者 %i