struct nombre{
    declaración de dato ;
    ...
};


Una estructura deberá ser declarada fuera de cualquier proceso o función

Se debe poner la palabra reservada struct precediendo a su nombre, tras la cabecera se declararán todos los datos pertenecientes a la estructura, que conformarán los campos de la misma. Y, por último, para finalizar la declaración debe aparecer la palabra reservada "};".

A continuación se muestra un ejemplo de estructura:

 struct enemigo{
  int energia;
  unsigned short x_inicial,y_inicial;
  unsigned short x_final,y_final;
  char nombre[15];
 };
 
 struct enemigo enemigos[10];

Al igual que con las tablas, el número de registros se expresa como el número de registro máximo de la estructura, es decir, todas las estructuras tienen desde el registro 0 hasta el indicado entre los corchetes menos 1 (por ejemplo, la declaración anterior define una estructura de 10 registros 0 hasta 9).

Se permite acceder al resgistro 0 de la estructura simplemente con el nombre de la estructura, es decir, que para el compilador enemigo[0].y_final será lo mismo que (*enemigo).y_final.

Nota: Cada campo de la estructura puede ser una variable o tabla (de cualquier tipo, ver los tipos de datos) u otra estructura completa, con sus diferentes registros y campos.

Inicialización de la estructura.

Si se quiere inicializar la estructura (fijar los valores iniciales de sus campos en los diferentes registros), se deberá poner el símbolo = (asignación) tras la palabra reservada }; seguida de una lista de valores.

Si no se inicializa la estructura, todos los campos serán puestos a 0 por defecto. Por ejemplo, si se hace la siguiente declaración:

 struct a{
    int b;     int c[2]; }; struct a numero[3] = {1,2,3,4,5,6,7,8,9};

Primero se debe tener en cuenta que la numero numero[] tiene 3 registros (desde a[0] hasta a[2]) y en cada registro 3 campos (b, c[0] y c[1]), luego la anterior declaración inicializará la estructura de la siguiente forma:

 a[0].b=1;
a[0].c[0]=2;
a[0].c[1]=3;
a[1].b=4;
a[1].c[0]=5;
...

Ver: Sintaxis - Declaración de un dato