error: jump to label crosses initialization [-fpermissive]

今天在编译 C++ 的时候出现了这个错误。代码里有 goto 这个恶心的东西:

[lineno]: error: jump to label ‘...’ [-fpermissive]
[lineno]: error: from here [-fpermissive]
[lineno]: error: crosses initialization of ‘...’

于是在 stackoverflow [1] 上查到了相应的原因,简单归结为两点:

1) goto 不能跨作用域使用;
2) goto 不能使用在任何同作用域变量声明之前。

当然,还有永恒不变的真理:

永远不要用 goto

 

[1] Statement goto can not cross pointer definition?. Stackoverflow. http://stackoverflow.com/questions/14274225/statement-goto-can-not-cross-pointer-definition

鱼尾Swing

国内某理工学校电子类专业85后。热爱PS,热爱WEB,对各种技术都好奇。平时看看动画,听听音乐,做爱做的事。作为工坊的工头,负责工坊的维护,操劳各种苦力工作。

More Posts - Website

Follow Me:
Twitter

Leave a Reply