#pragma does_not_return (funcname [, funcname])
此 pragma 向编译器断言,将不会返回对指定例程的调用。然后,编译器可以执行与假定一致的优化。例如,寄存器生命周期将在调用点终止,进而允许更多的优化。
如果指定的函数不返回,程序的行为就是未定义的。只有在使用原型或空参数列表声明指定的函数之后才允许使用该 pragma,如下例所示:
extern void exit(int); #pragma does_not_return(exit) extern void __assert(int); #pragma does_not_return(__assert)