Ищем команду препроцессора для удаления команды в коде
Я работаю над библиотекой C, которая иногда использует
static inline void myfunc(...)
при определении функции.
Теперь я пытаюсь перенести это на старый компилятор C, который не поддерживает "статический inline". Это bcc - компилятор Си Брюса.
Могу ли я использовать команду в заголовочном файле, который заменяет
static inline void
с
void
во всех программах, которые включают этот заголовочный файл?
2 ответа
Когда вы должны использовать компилятор, который не поддерживает определенные функции, в вашем коде обычно используют макросы, а не пытаются модифицировать ваш код с помощью макросов.
В этой ситуации вы можете определить STATIC_INLINE
макрос в зависимости от компилятора, и используйте его так:
#ifdef BCC_COMPILER
#define STATIC_INLINE
#else
#define STATIC_INLINE static inline
#endif
...
STATIC_INLINE void myfunc(...)
Большое спасибо всем за помощь. Я должен сообщить, что BLUEPIXY дал ответ, который работал для меня в своем комментарии:
#define inline
По-видимому, bcc принимает static void
но нет static inline void
,