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

noreturn宏


概要:

该宏在<stdnoreturn.h>头文件中定义,会扩展为C语言关键词_Noreturn

#define noreturn _Noreturn


描述:

_Noreturn为函数说明符(function specifiers),函数说明符仅用于函数声明;但在宿主环境中,函数说明符不能用于main函数的声明。同一声明中,相同的函数说明符可以出现多次,但作用与出现一次是相同的。

使用_Noreturn函数说明符声明的函数不会返回给调用者。


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

#include <stdio.h>
#include <stdlib.h>
#include <stdnoreturn.h>

noreturn void func(void)
{
    puts("This is a noreturn function.");
    exit(EXIT_SUCCESS);
}

int main(void)
{
    func();
    
    /*以下部分不会被执行。*/
    puts("After noreturn function."); 

    return 0;
}

结果:

func函数调用以后的部分不会被执行。