我想做一個程序,其中函數被指針指向。它如下: -在C:使用void和int關鍵字,同時指向函數
這是第一個使用「無效」返回類型的程序。
#include<stdio.h>
#include<conio.h>
void CharPrint(char *ptr);
main()
{
char *str="Hello World";
void (*ptr1)(char *ptr);
ptr1=CharPrint;
if((*ptr1)(str))
printf("Done");
return 0;
}
void CharPrint(char *ptr)
{
printf("%s\n",ptr);
}
它引發了很多錯誤。它們是: -
第二個程序如下: -
#include<stdio.h>
#include<conio.h>
int CharPrint(char *ptr);
main()
{
char *str="Hello World";
int (*ptr1)(char *ptr);
ptr1=CharPrint;
if((*ptr1)(str))
printf("Done");
return 0;
}
int CharPrint(char *ptr)
{
printf("%s\n",ptr);
return 0;
}
這個程序運行沒有任何打嗝。
的輸出是: -
我的問題是,在所述第一輸出,它爲什麼表示上線9「在功能主要不允許使用的類型」其他的線也產生懷疑,但這條線最讓我煩惱。任何幫助?
那麼,至少「void函數可能不會返回值」是一個明顯的例子。你確定你正在編譯你在這裏給我們展示的代碼嗎?另外,你的代碼不適合C;相反,這是一種在1970年代暫時使用的C風格。您可能想要獲得現代知識來源。 –
@KerrekSB我正在編譯我在此向您展示的代碼。然而,「不返回任何東西」的概念似乎合乎邏輯。然而,主要問題是在第9行。你能幫我解決嗎? – kusur
@kusur如果在你的編輯器中有9行是if條件,那麼會給你錯誤。它可能沒有得到任何測試。 –