myfile.cpp:15:6 warning: ‘val‘ may be used uninitialized in this function [-Wmaybe-uninitialized]
本身这个问题很简单,提示也说的很清楚,val没有初始化。 但是,奇怪的地方在于去查看myfile.cpp:15并没有 val 这个变量,myfile.cpp:15 指向了一个函数myfunc()的开头,这个函数里面压根并没有定义val这个变量。甚至,整个myfile.cpp里面也没有定义这个变量。
解决方法:
经过查找资料发现,myfile.cpp在编译的时候是加了 -O3优化选项的,经过测试发现除去把-O3删掉,问题就会消失,O3优化具体做了什么可以自行google。但问题是我就是需要-O3,那怎么办?通过一行行的注释myfile.cpp:myfunc() 进一步定位问题发现,问题出在了某行的一个函数调用上,该函数是一个inline的函数,该inline函数其中的一个形参变量命名是 “val”。考虑到inline函数在执行时就是拷贝到调用处,再考虑到使用了O3, 所以估计是O3在做优化的时候,弄出了一个un
myfile.cpp:15:6 warning: ‘val‘ may be used uninitialized in this function [-Wmaybe-uninitialized]最先出现在Python成神之路。
共有 0 条评论