C++ goto 编译出错问题
今天编译解码程序的时候,报如下错误:
error: jump to label ‘discard_packet’ [-fpermissive] ××××××× goto discard_packet; ×××××××× crosses initialization of ‘cv::Mat ppp’
这是因为goto语句的问题,在linux C++里使用goto语句有时候会出现这个问题(反正我是偶尔碰到这个问题,有时候没问题,有时候出错)
出现这个问题是因为在 goto 语句之后有新定义的变量:cv::Mat ppp;
, 要避免这个问题,则需要将定义放在goto语句之前,如
cv::Mat img;
goto:
img = ........