2010-06-10 58 views
26

我知道BOOL实际上是一个有符号字符型的typedef。 但布尔怎么样? 我很困惑bool,布尔和BOOL .... Q QObjective-C中布尔和布尔之间有什么区别吗?

+0

Objective-C中没有一个叫“布尔”或“布尔”类型,你可以澄清你的问题? – 2010-06-10 17:28:10

+0

我不知道,布尔出现在CF库... – Frost 2010-06-10 17:40:14

+0

当然它。它是C,所以它也有。和C++的东西。 – uchuugaka 2013-09-16 00:30:23

回答

42

Boolean是一个旧的碳关键字(历史Mac类型),定义为unsigned charBOOL是定义为signed char的Objective-C类型。 bool_Bool标准C类型的定义版本。它被定义为int。使用BOOL

+6

'Boolean'中的CoreFoundation(其中碳大多是建立在现在顶部)使用,所以当你要在Objective-C使用BOOL,任何的CoreFoundation的API打交道时,布尔仍然在使用。 – bobDevil 2010-06-10 17:38:45

+1

哦,我明白了,所以我应该使用BOOL来共同使用和布尔值CF.谢谢! – Frost 2010-06-10 17:53:07

+0

糟糕,你是对的。 CoreFoundation确实定义了一个'Boolean'版本,但这与Carbon的定义是分开的。请参阅MacOSTypes.h与OSTypes.h。而在不使用C99的64位系统上,CoreFoundation的'Boolean'是'unsigned char'。 – 2010-06-10 17:56:36

相关问题