『壹』 C語言編譯報錯大部分都是先前定義在此,要怎麼修改
自己要學會換一個思路來解決問題,看一看「標准」的頭文件是怎麼寫的,比如stdio.h:
#pragma once
#ifndef _INC_STDIO // include guard for 3rd party interop
#define _INC_STDIO
// ....
#endif // _INC_STDIO
這樣寫可以保證這個頭文件只會被編譯一次。除了聲明、模板類,一般不在頭文件.h里邊寫實現代碼。另外還要學會使用extern這個關鍵字
『貳』 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;
}