ZHCADC5A June 2013 – June 2020
jmp_buf 的类型和大小在 setjmp.h 中定义
在小代码和小数据模型组合下,jmp_buf 的大小和对齐与由 9 个“int”组成的数组(即 16 位 * 9)相同。对于所有其他代码和数据模型组合,jmp_buf 的大小和对齐与由 9 个“long”组成的数组(即 32 位 * 9)相同。
setjmp 和 longjmp 函数不得内联,因为 jmp_buf 不透明。也就是说,结构体的字段不由标准定义,因此除 setjmp() 和 longjmp() 之外,无法访问结构体的内部,而这两个函数必须来自同一库的外联调用。这些函数不能作为宏实现。