天天看點

傳回bool的函數無return時傳回true還是false

#include <stdio.h>

bool f()
{
}

int main()
{
if(f())
	printf("default return true!\n");
else
	printf("default return false!\n");
}
           

代碼如上:

結果是什麼?

在vs2008下,會是

default return true!

在gcc下,(gcc version 4.3.4 20090804 (release) 1 (GCC))

會是

default return false!

不同編譯器傳回的不同。

個人粗心犯了這個錯誤,當然我們寫這種傳回bool類型的函數時要覆寫所有分支。

繼續閱讀