C语言32个关键字中,强烈不推荐goto使用。
C语言中,关于goto的论战是比较少的,一般90%的人都同意能不用goto的地方,就不要用goto。
虽然goto语句在linux代码中出现很多次,但是我个人觉得那都是当年使用汇编造成的后果,现在基本都没怎么用goto了。
goto语句也称为无条件转移语句,其一般格式如下:
goto 语句标号;
其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
goto地跳转到指定标号位置,再说一遍,goto地跳转到指定标号位置,执行完成后,按照顺序继续执行goto语句之后的汇编代码。
所以goto语句和标号之间的程序会被跳过,不执行,所以理论上C语言的goto和标号不会间隔太远。
一般来说,必须使用场景不多,一般用于多重循环(这个本身就不推荐)下的直接跳转。
从最内侧循环直接跳到外面的循环,这确实会使程序清晰简洁。
不过这里原则还是要声明一下:能不用goto语句的地方就不用goto,除非你用别的方式实现确实会造成程序复杂度的增加。