Каков тип переменной синтаксиса: «somestring» в Objective-C? - PullRequest
2 голосов
/ 21 августа 2011

Я видел это в каркасных файлах Apple

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

Какого типа 'lpcm' и 'ac-3'?
С одним символом в одинарной кавычке, например 'a'знаю, что это символ;С двойными кавычками вроде "text" я знаю, что это строка.

Но это?Это меня смущает.

Ответы [ 2 ]

3 голосов
/ 21 августа 2011

Вопреки распространенному мнению, тип 'c' в C равен int, а не char. Когда вы делаете что-то вроде char c = 'c';, произойдет неявное преобразование из int в char, как если бы вы написали char c = 99;.

Итак, чтобы ответить на ваш вопрос: тип 'abcd' равен int, аналогично типу 'c'.

3 голосов
/ 21 августа 2011

Ну, сначала вы в перечислении типа, так что он может представлять только целое число. Я думаю, что яблоко использует его для создания уникальных значений для перечисления, но также хочет, чтобы оно читалось человеком.

Более подробное объяснение см .: Какого типа перечисление, значения которого выглядят как строки?

...