2017-10-21 47 views
0

我剛剛被燒死了。編譯我的c代碼時,我沒有啓用警告。我正在使用atof而不包括stdlib.h。所以atof使用默認返回類型爲int的隱式聲明。所以代碼不起作用。 我想知道隱式聲明的概念是否也適用於C++?在C++中有隱式聲明嗎?

+2

函數原型在C++中是必需的。你能提供一個證明你觀察到的問題的[SSCCE](http://sscce.org)嗎? –

+0

@GregHewgill:他在談論[this C(mis)feature](https://stackoverflow.com/questions/9182763/implicit-function-declarations-in-c)。 –

+1

@NicolBolas:我明白,但問題是關於C++,而不是C. –

回答

2

C++不允許implicit function declarations。事實上,即使C99/11也不允許它們。 GCC默認將C編譯爲C89,這就是爲什麼你得到了錯誤的原因。