Что означает «REF» в glibc vfprintf.c?

Я довольно (очень) новичок в С++/Linux и просматриваю функцию vfprintf в glibc. Он включает в себя множество применений REF (...), который, как я предполагаю, является макросом, но я нигде не могу найти его определение. Я искал сам файл, а также все включенные файлы.

Это макрос? Если да, то где его определение? Также есть ли лучший способ найти определение макросов, чем поиск всех включенных файлов по одному?


person Matthew Finlay    schedule 23.11.2011    source источник
comment
gcc может выводить результат промежуточной обработки с соответствующими параметрами. Я всегда использую g++ -E -dD sourcefile.cpp, когда хочу знать, где объявлены идентификаторы или где и как определен каждый макрос. Это даст результат предварительной обработки со всеми определениями макросов. Однако код, игнорируемый #if, отображаться не будет. Другие параметры, влияющие на предварительную обработку, должны быть добавлены так же, как команда компиляции, например -I, для получения правильного результата. man gcc даст больше информации.   -  person fefe    schedule 23.11.2011
comment
@fefe, должен был быть ответ, это стоит +1 :)   -  person sarnold    schedule 23.11.2011


Ответы (1)


In stdio-common/vfprintf.c:

#ifdef SHARED
# define REF(Name) &&do_##Name - &&do_form_unknown
#else
# define REF(Name) &&do_##Name
#endif

Я нашел его через ctags(1); ctags -R . ; vim -t REF.

person sarnold    schedule 23.11.2011
comment
Превосходно! Отвечает на все три вопроса :-) - person André Caron; 23.11.2011
comment
Большое спасибо, я искал #define REF - person Matthew Finlay; 23.11.2011