Estaba husmeando en los archivos de encabezado de mi microcontrolador MSP430 y me encontré con esto en <setjmp.h>:
/* r3 does not have to be saved */
typedef struct
{
uint32_t __j_pc; /* return address */
uint32_t __j_sp; /* r1 stack pointer */
uint32_t __j_sr; /* r2 status register */
uint32_t __j_r4;
uint32_t __j_r5;
uint32_t __j_r6;
uint32_t __j_r7;
uint32_t __j_r8;
uint32_t __j_r9;
uint32_t __j_r10;
uint32_t __j_r11;
} jmp_buf[1]; /* size = 20 bytes */
Entiendo que declara una estructura anónima y typedef jmp_buf, pero no puedo entender para qué [1]sirve. Sé que declara jmp_bufser una matriz con un miembro (de esta estructura anónima), pero no puedo imaginar para qué se usa. ¿Algunas ideas?