Что такое «неопределенный макрос»?

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

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

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

22.08.2008 09:55:47
5 ОТВЕТОВ
#define IBOutlet

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

8
22.08.2008 09:56:57

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

8
22.08.2008 14:15:09

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

#define IN
#define OUT
#define INOUT

int myFunction (IN char * имя, INOUT char * адрес, OUT char * телефон);

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

7
5.09.2008 07:09:17
Это действительно мило. Напоминает мне об Аде (очевидно). Я предпочитаю префикс имени параметра с in или out. Но тот же эффект.
schwa 3.10.2008 19:03:04
То же самое, за исключением отсутствия загрязнения пространства имен сумасшедшими макросами. ;)
Kos 6.01.2011 16:19:51

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

0
28.09.2008 17:12:18

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

0
28.09.2008 17:13:26
Почему бы вам не объединить два ответа и не удалить один?
Amarghosh 18.10.2010 12:11:40