这在GCC编译器中遇到的,关键是在其他比如vs编译器上能通过。这个可能就是编译器的规则问题了。如果函数内部有分支,而有的分支并没有返回值。这种情况在vs编译器中只是一个warning,但是GCC编译器编译就是过不了。解决办法就是在函数的最后进行返回,返回的变量在各个分支进行赋值。这样就能编译通过了。另外在递归调用的时候,这个值有可能成为递归函数内部的自动变量,如果不在各个分支内进行赋值,那么返回的结果有可能是错误的。
这在GCC编译器中遇到的,关键是在其他比如vs编译器上能通过。这个可能就是编译器的规则问题了。如果函数内部有分支,而有的分支并没有返回值。这种情况在vs编译器中只是一个warning,但是GCC编译器编译就是过不了。解决办法就是在函数的最后进行返回,返回的变量在各个分支进行赋值。这样就能编译通过了。另外在递归调用的时候,这个值有可能成为递归函数内部的自动变量,如果不在各个分支内进行赋值,那么返回的结果有可能是错误的。