Есть ли различия между стандартным препроцессором C и препроцессором Objective-C? - PullRequest
1 голос
/ 23 августа 2011

Я не могу найти ответ на этот вопрос от Google.Могу ли я предположить, что препроцессор Objective-C работает точно так же, как и препроцессор C, и что все, что я читаю о препроцессоре C, применяется точно так же в среде Objective C?Или есть тонкие различия?

Ответы [ 3 ]

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

Официальная документация от Apple гласит, что Obj-C - это небольшой надмножество языка.Насколько я могу судить, препроцессор такой же, как и обычные C (в любом случае все они основаны на одних и тех же компонентах с открытым исходным кодом).Это верно для компилятора GCC (который используется в другом месте) и связанных инструментов;Я бы предположил, что LLVM тоже самое, но я не могу говорить о последнем.

Следует отметить, что #pragma s, но опять же они должны были зависеть от реализации.

2 голосов
/ 23 августа 2011

Есть некоторые тонкие различия:

  • Пути включения различаются в зависимости от того, какой язык вы используете.
  • Я считаю, что #import вызывает предупреждение, если выне использует ObjC.
  • Препроцессор может иметь несколько особых случаев для обработки синтаксиса ObjC @"string".
  • И, конечно, самое главное, язык влияет на то, какие макросы предопределены (например,__objc__).

Это все равно cpp в любом случае, однако - он просто работает в другом режиме.

0 голосов
/ 23 августа 2011

Это тот же препроцессор.Вы можете посмотреть на источник Clang или GCC, если хотите сами убедиться - насколько я могу судить, кроме того факта, что он использует лексер Objective C, а не C, он такой же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...