什么是变量类型的语法:Objective-C中的'somestring'?

时间:2011-08-21 15:43:04

标签: objective-c c cocoa

我在Apple的框架文件中看到了这个

enum
{
    kAudioFormatLinearPCM               = 'lpcm',
    kAudioFormatAC3                     = 'ac-3'
}

'lpcm''ac-3'的类型是什么? 在单引号中使用单个字符,如'a',我知道它是一个字符;使用像"text"这样的双引号,我知道它是一个字符串。

但是这个?这让我很困惑。

2 个答案:

答案 0 :(得分:3)

首先你的类型枚举,所以它只能代表一个int。我认为苹果使用它为枚举创建独特的val,但也希望它具有人类可读性。

有关更好的解释,请参阅:What is the type of an enum whose values appear to be strings?

答案 1 :(得分:3)

与普遍看法相反,C中'c'的类型为int,而非char。当您执行char c = 'c';之类的操作时,会有intchar的隐式转换,就像您编写char c = 99;一样。

所以回答你的问题:'abcd'的类型是int,与'c'的类型相同。