#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) |
有关 pragma 如何将重载的函数名视为参数的更加详细的说明,请参见B.1.1 将函数作为 pragma 参数进行重载。