比goto跳转的更远的函数

本来以为goto就是“任意”的跳转了,今天才知道还有比它更能跳的。
goto是本地的:它只能跳到所在函数内部的标号上,而不能将控制权转移到所在程序的任意地点(当然,除非你的所有代码都在main体中)。

为了解决这个限制,C函数库提供了setjmp()和longjmp()函数,它们分别承担非局部标号和goto作用。头文件申明了这些函数及同时所需的jmp_buf数据类型。这种跳转功能主要用于错误处理。



你可能感兴趣的:(Linux,C)