2013-11-17 4 views
0
typedef const struct __CFString * a1; 

В приведенном выше объявлении typedef a1 определяется как указатель на постоянную структуру __CFString.typedef CFString, начинающийся с __

Здесь что означает «__»?

Затем я создаю новое определение как a2, описанное ниже.

typedef const struct CFString * a2; 

Итак, как a1 отличается от a2?

ответ

1

Прежде всего, подчеркивания в __CFString являются частью имени, поэтому struct __CFString и struct CFString различными типов, так же, как и struct XXCFStringstruct CFString различных типов.

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

Вот еще один ответ: более подробно: What are the rules for using an underscore in a C++ identifier?

Смежные вопросы