Выполнение cc -std=c99 example.c
на следующем упрощенном example.c
файле:
inline void a()
{
}
int main()
{
a();
return 0;
}
возвращает меня:
В функции `main ':
example.c:(.text + 0x7): неопределенная ссылка на 'a'
collect2: ld вернул 1 статус выхода
Как я понимаю, это связано с требованием стандарта C99 требовать ровно еще одногоопределение для каждой встроенной нестатической функции, которая используется в тех случаях, когда тело не может быть встроено?Если это так, я полагаю, что я мог бы сделать с static inline
вместо этого, но я не хочу, чтобы это укусило меня позже, так что будет лучшим вариантом действий здесь?Очевидно, я хочу придерживаться C99, и я хочу встроить некоторые функции.(Да, я знаю, что компилятор обычно знает, что нужно встроить, не сообщая об этом, но у меня есть свои причины)