可能重複:
Error: No previous prototype for function. Why am I getting this error?沒有以前的原型?
我有我的頭文件中原型的功能,但是Xcode中仍然給我警告No previous prototype for the function 'printBind'
。我以相同的方式創建了功能setBind
原型,但是在我的實現中我沒有看到這個函數的警告。
CelGL.h
#ifndef Under_Siege_CelGL_h
#define Under_Siege_CelGL_h
void setBind(int input);
void printBind();
#endif
CelGL.c
#include <stdio.h>
#include "CelGL.h"
int bind;
void setBind(int bindin) { // No warning here?
bind = bindin;
}
void printBind() { // Warning here
printf("%i", bind);
}
雖然我現在明白錯誤的原因,但我並不真正瞭解此功能的用處。你什麼時候可以定義一個帶有不確定參數列表的函數?這與C++有什麼關係?這是C++中的一個有用的功能嗎? – sherrellbc 2017-12-04 13:52:58
您無法在C++中定義具有不確定參數列表的原型。在C++中,這意味着「沒有參數」,而不是「不確定參數」。這個功能並沒有像現實中的必要讓步那麼有用。當C被標準化時,整個龐大的代碼庫被編寫成沒有原型;它們在C中不存在。空括號符號全部都在標準前C中。如果違法,它會殺死新生的C標準。 C99仍然如此。 C11不太清楚,但保持不變。 – 2017-12-04 14:55:01