ฉันกำลังสอดแนมไฟล์ส่วนหัวของไมโครคอนโทรลเลอร์ 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
เป็นอาร์เรย์ที่มีสมาชิกหนึ่งตัว (ของโครงสร้างที่ไม่ระบุตัวตนนี้) แต่ฉันนึกไม่ออกว่ามันใช้ทำอะไร ความคิดใด ๆ ?