¿Cómo alinear y usar correctamente una función en línea en C99? (la construcción falla)

Doingcc -std=c99 example.c en el siguiente @ simplificaexample.c archivo

inline void a()
{
}

int main()
{
   a();

   return 0;
}

me atrapa

In función `main ':
example.c :(. text + 0x7): referencia indefinida a 'a'
collect2: ld devolvió 1 estado de salida

Según tengo entendido, esto tiene que ver con el requisito del estándar C99 de exigir exactamente una definición más para cada función en línea no estática que se usa en casos en los que el cuerpo no puede estar en línea. Si es así, supongo que podría hacer constatic inline en cambio, pero no quiero que esto me muerda más tarde, entonces, ¿cuál sería el mejor curso de acción aquí? Obviamente, quiero apegarme a C99 y quiero incorporar algunas funciones. (Sí, soy consciente de que el compilador generalmente sabe qué incluir en línea sin que se lo indiquen, pero tengo mis razones)

Respuestas a la pregunta(2)

Su respuesta a la pregunta