C++ goto 编译出错问题

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 = ........

你可能感兴趣的:(C++)