前面我们讲解了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