主函數的括弧後面編譯錯誤怎麼辦
發布時間: 2022-12-11 19:32:16
❶ 如下的函數調用為什麼會在編譯的時候出錯
在函數聲明和定義的時候,如果參數列表為空,可以設為void,但調用的時候,因為參數列表為空,說明沒有傳遞參數。
定義一個函數如下:
int getNum( int nNum )
{
return nNum;
}
則,調用的時候必須要給nNum賦值的,總不能在main()函數中這樣調用吧
int main(){
getNum( int nNum );
}
所以調用的時候不用加void;
❷ C語言:下面的代碼為什麼會出現編譯錯誤應當怎麼改正
錯誤出在a=sum;這一句——因為構成C語言程序的基本單位是函數而不是C語句,這里的a=sum;不在任何函數中,所以編譯器無法處理而出錯。把它放到主函數中的printf("%d ",a(3,5));之前就可以了。函數外只能進行全局變數定義或聲明,而不能進行其他操作,所以把int (*a)(int, int); a=sum;兩句改成int (*a)(int, int)=sum;,讓它成為聲明變數a並初始化為sum也是可以的。你可以試試。
代碼文本:
#include "stdio.h"
int sum(int a, int b);
int (*a)(int, int);
int main(int argc,char *argv[]){
a=sum;
printf("%d ",a(3,5));
return 0;
}
int sum(int a,int b){
return a+b;
}
熱點內容