2008-08-22 5 views
5

Я изучаю цель-C и какао. В учебнике Apple, я работаю через есть примечание стороны, что говорит:Что такое «неопределенный макрос»?

IBOutlet является нулевым определенным макросом, который препроцессор C удаляет во время компиляции.

Мне любопытно - что такое неопределенный макрос?

ответ

8
#define IBOutlet 

Всякий раз, когда IBOutlet используется в тексте программы, он не будет заменен ничем вообще.

8

FYI, в данном конкретном случае, причина, по которой существует только IBOutlet, просто заключается в том, что Interface Builder может анализировать исходный файл и извлекать из него биты понимания. Это ключ (ну, немного более сильный, чем подсказка), что переменная, которой предшествует IBOutlet, должна отображаться как Outlet в Interface Builder при разработке ваших пользовательских интерфейсов.

7

Макрос, определяемый нулем, представляет собой макрос, который будет заменен ничем (будет удален) препроцессором. Это роль, чтобы дать подсказку о чем-то в коде, например:

 
#define IN 
#define OUT 
#define INOUT 

int myFunction(IN char *name, INOUT char *address, OUT char *phone); 

Это заявление наводит на мысль, что name является входной переменной для функции, address является вход и выход, phone является выходной переменной.

+1

Это действительно мило. Напоминает мне Аду (очевидно). Я предпочитаю префикс имени параметра с помощью или из. Но такой же эффект. – schwa 2008-10-03 19:03:04

+0

То же, за исключением отсутствия загрязнения пространства имен сумасшедшими макросами. ;) – Kos 2011-01-06 16:19:51

0

Кроме того - если вы не знаете, как что-либо определено - команда дважды щелкните по нему, и Xcode откроет определение в исходном исходном файле.

0

О, и пока я нахожусь. Опция двойного щелчка (попытка) открыть документацию для двойного щелчка.

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