說我有這個功能:爲什麼我可以通過一個參數太多的指針來調用函數?
int func2() {
printf("func2\n");
return 0;
}
現在我宣佈一個指針:
int (*fp)(double);
這應該指向需要double
參數並返回一個int
的功能。
func2
沒有任何說法,但仍當我寫:
fp = func2;
fp(2);
(與2
是隻是一個任意數字),func2`正確調用。
這是爲什麼?對於我聲明的函數指針的參數數量是否沒有意義?
簡短的答案是「聲明函數沒有參數...然後故意傳遞參數...是錯誤的」。 – paulsm4