函數無法編譯
❶ 關於一個java中成員函數的代碼,無法編譯,求解決答案,哪裡出錯。
你放置 p1.jisuan(); 的地方,是類初始化的區域,請把放到一個方法當中,或者把Person p1=new Person();
p1.jisuan();
放入static 代碼化
❷ 這個函數定義為什麼不能過編譯
定義數組的時候不能用arr[n],中括弧裡面要是一個常數。題目中應該會告訴你數字最多有幾個,定義的時候用最大數。在函數中循環時再用n
❸ 這個函數為什麼不能被編譯
vvoidbutler,多了個v,不是vvoid,是void
還有最開始的聲明voidbutler(void);,void與butler之間有個空格
後面的vvoidbutler(void);的那個分號不需要
#include<stdio.h>
voidbutler(void);
intmain(void)
{
printf(「Iwillsummonthebutlerfunction. 」);
butler();
printf(「Yes.BringmesometeaandwriteableCD-ROMS. 「);
return0;
}
voidbutler(void)
{
printf(「Yourang,sir? 「);
}
❹ c語言的gets函數編譯不成功阿,很短的程序
C語言的gets函數一般包含在stdio.h頭文件里,如果沒有包含比頭文件那可能會有問題。第二種情況包含了還出問題,說明你的編譯器已經不支持這個函數了,這個函數非常不安全,容易造成溢出,建議換成fgets函數。
函數原型:
char *fgets(char *buf, int bufsize, FILE *fp);
參數解釋:
參數一是輸入字元串存放地址,
參數二是存放地址最大容量,
參數三是從哪裡輸入,可以從文件也可從輸入設備,如果從輸入設備輸入這個參數可以寫成stdin,如果從文件輸入此參數為文件指針。
返回值:
輸入成功返回參數一,失敗返回NULL.
補充知識:
為什麼gets不讓用呢,我們可以看它的原型:char *gets(char *buf);
這個函數可以一直輸入知道換行或者EOF,它並不考慮buf空間是否足夠大能放下,這就容易導致溢出,有些別有用心的人就會利用這個漏洞去攻擊你的程序。
而fgets可以通過第二參數保證不會讀入超過buf空間的字元。
❺ 求助,execve函數無法編譯
nt execve( const char *pathname, char *const argv[], char *const envp []); 函數說明 execve()用來執行參數filename字元串所代表的文件路徑,第二個參數系利用數組指針來傳遞給執行文件,最後一個參數則為傳遞給執行文件的新環境變數數組
❻ C++編譯,編寫的函數放到不同的文件為什麼會無法編譯
調用函數之前,編譯器必須看到函數聲明或者函數定義。
將函數放到不同實現文件,一般的做法是在一個頭文件中包含該函數聲明,在實現文件中包含該函數的定義。
❼ C語言中的函數不可以單獨進行編譯。這句話為什麼不對
C語言中的函數可以單獨進行編譯,編譯為目標文件,要鏈接成可執行文件時,需要主函數以及庫。
❽ C++ 模板函數無法編譯
模板定義的函數或者類,並非實體
需要將模板參數帶入後才是真正意義上的類或者函數
編譯器大多不支持分離編譯,即定義的模板類與 調用它的代碼放在不同文件
解決方式: 將h文件中的代碼拷至cpp文件中即可
❾ VB6 中函數聲明錯誤編譯不通過,如何解決
語法沒錯誤,不應該在不同語言條件下就不成立,VB不會有這種問題。可能的問題更多是你在繁體中文系統中代碼中存在一些編譯器不認識的中文字元
❿ 以下代碼出現關於重載函數的錯誤無法編譯,請問我要如何修改呢
#include<iostream>
usingnamespacestd;
classbox
{
private:
intheight,width,depth;
public:
//box();最簡單的,注釋掉這個就可以了,因為下面的構造函數包含了無參數格式
box(intht=2,intwd=3,intdp=4)
{
height=ht;
width=wd;
depth=dp;
}
~box(){}//;這里需要函數體
intvolume()
{
returnheight*width*depth;
}
};
intmain()
{
boxthisbox(3,4,5);
boxotherbox;
otherbox=thisbox;
cout<<otherbox.volume()<<endl;
return0;
}
對比代碼並參考注釋。