C语言中的goto,及BUG
C语言中goto的使用及goto中的一个BUG:
① 当循环有多层时,用goto跳出指定一层。
② 异常处理。
goto语句中的一个BUG:
请看下图,是个死循环
编译器扫描代码时是一行一行的,当扫描有没有返回值时,是扫描有没有跟return匹配的字符,用了goto语句巧妙的跳过了return语句,但是在.cpp文件中会发现是个死循环。
原因所在:
是因为编译器会删除无用的代码,同时下面代码往上移动到它的位置,这里不知何故移动了2次,使下面代码移动到如上图位置,从而形成死循环