undefined C struct forward declaración

Tengo un archivo de encabezado port.h, port.c y mi main.c

Recibo el siguiente error: 'ports' usa una estructura indefinida 'port_t'

Pensé que ya había declarado la estructura en mi archivo .h y que la estructura real en el archivo .c estaba bien.

Necesito tener la declaración de reenvío ya que quiero ocultar algunos datos en mi archivo port.c.

En mi puerto.h tengo lo siguiente:

/* port.h */
struct port_t;

port.c:

/* port.c */
#include "port.h"
struct port_t
{
    unsigned int port_id;
    char name;
};

C Principal

/* main.c */
#include <stdio.h>
#include "port.h"

int main(void)
{
struct port_t ports;

return 0;
}

Muchas gracias por las sugerencias

Respuestas a la pregunta(4)

Su respuesta a la pregunta