Это называется углификацией. Дело в том, что вы никогда не используете его, поэтому никакое имя переменной или #define
, которое вы создаете, не может помешать коду Apple.
По иронии судьбы, многие люди создают заголовки с такими именами, потому что они видят, как это делают системные заголовки.
Из C99 7.1.3 «Зарезервированные идентификаторы»:
Все идентификаторы, которые начинаются с символа подчеркивания и либо с заглавной буквы, либо другого символа подчеркивания, всегда зарезервированы для любого использования.
(Они зарезервированы для системной библиотеки.)
Примечание. Я не уверен в точных отношениях между C99 и Apple ObjC, но у вас также могут быть соглашения об именах, которые работают во всем семействе языков C. В частности, для ObjC ++ потребуются допустимые имена C ++, для которых требуется дополнительное условие: ни одного двойного подчеркивания нигде.