Intereting Posts
странный результат сравнения целочисленного неравенства C Понимание пустого перевода main () в сборку Есть ли хорошие временные таймеры POSIX? Почему я не могу правильно прочитать константу C из Голанга? Динамически выделять введенную пользователем строку Почему моя программа принимает одно целое слишком много и вводит слишком мало? Перегрузка free (), поэтому моя программа использует мои, а не систему Этот алгоритм позволяет найти сумму до бесконечности серии, приемлемой? Как решить «BUG: планирование при атомарном: swapper / 0x00000103 / 0, CPU # 0»? в драйвере TSC2007? «Sizeof», чтобы знать размер массива, не работает в функции в C Тонкая разница между #ifdef и #if для макроса, определяемого как 0 Как скомпилировать без предупреждений, считающихся ошибками? C Main Loop без 100% процессора Какой эффективный алгоритм времени для копирования неровных бит-массивов? Почему все файлы C, написанные моим преподавателем, начинаются с #?

Значение “char * _EXFUN (index, (const char *, int));”

Я нашел это в качестве предложения идеала eclipse idexer / intelisence независимо от его вызова. И это все:

char *_EXFUN(index,(const char *, int)); 

Сначала это выглядит как функция, возвращающая указатель на символ, но параметры (если это вообще функция) выглядит довольно запутанным. В списке параметров у нас есть скобки.

_EXFUN – это макрос, используемый в стандартных заголовках на некоторых платформах, например здесь

 #ifndef _EXFUN # define _EXFUN(N,P) NP #endif 

Таким образом, char *_EXFUN(index,(const char *, int)); расширяется до

 char * index(const char *, int) 

Этот трюк иногда делается так, что один и тот же заголовок может быть предварительно обработан с помощью _EXFUN установленным на что-то еще, например, для интроспекции сигнатур функций или для объявления экспортированных символов в библиотеке.