SPRAB89A September 2011 – March 2014
The type and size of jmp_buf are defined in setjmp.h
The size and alignment of jmp_buf is the same as an array of 13 "int"s (that is, 32 bits * 13).
The setjmp and longjmp functions must be not be inlined because jmp_buf is opaque. That is, the fields of the structure are not defined by the standard, so the internals of the structure are not accessible except by setjmp() and longjmp(), which must be out-of-line calls from the same library. These functions cannot be implemented as macros.