C++函数有返回类型但是无return语句的warning

今天写了这么一个函数:

int func(args) {
//函数体
//return something here
}

结果声明的时候函数的返回值是int型,但是由于疏忽,忘记写return了,这样明显程序逻辑就错了,貌似是g++默认会每次都返回0。实际上在g++看来这样的写法不是错误而是warning,恰好我又比较懒,直接运行命令g++ file.cpp,于是什么错误warning都没报就编译通过了,当然结果却全是错的,因为这个函数每次返回都是0,debug以后才发现自己忘记写return了,这个就提示我们warning其实是很重要的,编译的时候也不要偷懒,记得加上-Wall参数输出所有的warning总是没错的。

Written on January 7, 2013