我在查阅我的MSP430微控制器的头文件时,偶然发现了在<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 */
我明白它声明了一个匿名结构体并将其typedef为jmp_buf
,但我无法弄清楚[1]
是用来做什么的。 我知道它声明了jmp_buf
是一个只有一个成员(来自此匿名结构体)的数组,但我想不出它有什么用。 有什么想法吗?