2012-04-22 53 views
0

int(* ptFunction)(float,char,char);用不同的返回類型將函數的地址賦給函數指針

char func(float,char,char);

如果我們使用不同的返回類型,就像我們在上面的兩個函數聲明中做的那樣,下面的賦值將會正確地工作還是會給編譯錯誤?

ptFunction = &func;

+0

這是更好地爲你指出你暗示(C或C++)的語言?之後,可以通過測試來檢查它。 (我不是一個標準粉絲,所以我不能以其他方式回答這個問題) – parallelgeek 2012-04-22 20:17:10

+0

上面的代碼片段來自C++。 – 2012-04-22 20:19:41

回答

0

下面的代碼提高(以g ++)的錯誤:

int (*pFun)(float, char, char); 

char fun1(float, char, char) {} 

int main() { 

    pFun = &fun1; // error: invalid conversion from char (*)(float, char, char) to int (*)(float, char, char) 

    return 0; 
}