当前位置: C语言 -- 标准库 -- <setjmp.h> -- __STDC_VERSION_SETJMP_H__

__STDC_VERSION_SETJMP_H__宏


概要:
#include <setjmp.h>
#define __STDC_VERSION_SETJMP_H__ value //value值由实现定义。

描述:

宏__STDC_VERSION_SETJMP_H__是版本宏,版本宏会展开为ISO/IEC 9899标准附录M子条款中描述的值之一。

如果实现支持ISO/IEC 9899:2024标准,宏__STDC_VERSION_SETJMP_H__将扩展为值为202311L的整数常量表达式。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
/*宏__STDC_VERSION_SETJMP_H__范例*/

#include <setjmp.h>
#include <stdio.h>

int main(void)
{
    #ifdef __STDC_VERSION_SETJMP_H__
        #if __STDC_VERSION_SETJMP_H__ >= 202311L
            puts("The implementation supports ISO/IEC 9899:2024 standard.");
        #else
            puts("The implementation does not support ISO/IEC 9899:2024 standard.");
        #endif
    #else
        puts("The implementation does not define macro __STDC_VERSION_SETJMP_H__.");
    #endif

    return 0;
}

输出:

The implementation does not define macro __STDC_VERSION_SETJMP_H__.

(注:编译时实现未定义宏__STDC_VERSION_SETJMP_H__。)


相关内容:
jmp_buf 保存调用环境相关信息的类型。
setjmp 保存调用环境的宏。
longjmp 恢复调用环境的函数。


主要参考资料:

1、ISO/IEC 9899:2024