已編譯警告
Ⅰ 編譯程序時出現沒有錯誤但有警告的原因
沒法錯誤是因為編譯器沒有檢查出語法錯誤,有警告是因為有些可能寫的不太規范,有時也是不標准,比如你定義一個變數,但是在程序中沒有使用它,編譯程序時就會警告「定義了沒有使用的變數」,如果你用fopen打開文件,編譯是就會提示「fopen是一個不安全的函數」等等。但是警告一般不會影響程序的正確性。
Ⅱ java程序可以編譯 但是會有警告 為什麼呢
告警是編譯時檢查發現不符合一些常用約定,但是不妨礙執行。
ThestaticfieldText3.ishouldbeaccessedinastaticway
以下是修改過的代碼。
publicclassText3{
staticinti=47;//靜態方法共用內存
publicvoidcall(){
System.out.println("調用call方法");
for(i=0;i<3;i++){
System.out.print(i+"");
if(i==2){
System.out.println();
}
}
}
publicstaticintgetI(){
returni;
}
publicstaticvoidsetI(inti){
Text3.i=i;
}
publicText3(){
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Text3t1=newText3();
Text3t2=newText3();
Text3.setI(60);//這里有警告
Text3.i++;
System.out.println("第一個實例對象調用變數i的結果為i="+Text3.getI());//這里有警告
t1.call();//調用call方法後,i的值變成了3
Text3.i++;
System.out.println("第二個實例對象調用變數i的結果為i="+Text3.getI());//這里有警告
t2.call();
}
}
Ⅲ c語言編譯過程中為什麼顯示警告
此程序應該沒問題,如果有的話可能是你安裝的編譯系統有問題,建議你在別的編譯系統上試試(TC/WIN-TC)。
至於為什麼會出現警告,是由於你的程序中存在不和要求的輸入,但是警告一般不影響程序的應行,不過程序的結果一般來說是錯誤的,而且這時候程序能通過編譯,建議編譯時用快睫鍵(ALT+F9(TC編譯器))。
Ⅳ C語言編譯警告
void
main(void);函數被定義多次,這么明顯的錯誤肯定是其他.c文件定義了main函數了
另外你的這種寫法完全不符合c99啊
void
main(void)
應該寫成
int
main(void);或者
int
main(char
*argc,char*
argv[])
Ⅳ 在C程序中,編譯的時候,出現的那個warning,指的是什麼意思啊急,謝謝啦!
是警告信息,對於本編譯器規則來說,符合編譯規則,但是有些是無意義的,或者大了語法的擦邊球,不完全符合,但是也能用的。大部分可以忽略。有的時候可以設置警告的等級,視編譯器而定。
Ⅵ c語言,編譯出現警告了
1)警告的原因是編譯時,編譯器認為p變數沒有賦初值;
2)其實程序中已經在if else 中對p的初始值進行了處理,但編譯器比較「笨」沒有看出來
3)你可以完全不理會這個警告;
4)如果確實你不想讓編譯器出這樣的警告,在scanf語句前,加上 p = 0 , 顯式地為p賦初值