導航:首頁 > 源碼編譯 > 看編譯器報什麼警告

看編譯器報什麼警告

發布時間:2022-10-01 06:08:46

『壹』 c語言,編譯出現警告了

1)警告的原因是編譯時,編譯器認為p變數沒有賦初值;
2)其實程序中已經在if else 中對p的初始值進行了處理,但編譯器比較「笨」沒有看出來
3)你可以完全不理會這個警告;
4)如果確實你不想讓編譯器出這樣的警告,在scanf語句前,加上 p = 0 , 顯式地為p賦初值

『貳』 在C程序中,編譯的時候,出現的那個warning,指的是什麼意思啊急,謝謝啦!

是警告信息,對於本編譯器規則來說,符合編譯規則,但是有些是無意義的,或者大了語法的擦邊球,不完全符合,但是也能用的。大部分可以忽略。有的時候可以設置警告的等級,視編譯器而定。

『叄』 C語言編譯警告

void
main(void);函數被定義多次,這么明顯的錯誤肯定是其他.c文件定義了main函數了
另外你的這種寫法完全不符合c99啊
void
main(void)
應該寫成
int
main(void);或者
int
main(char
*argc,char*
argv[])

『肆』 請c語言高手看看下面這個程序哪裡出錯了,編譯後怎麼有一個警告

1)警告的原因是編譯時,編譯器認為p變數沒有賦初值;
2)其實程序中已經在if
else
中對p的初始值進行了處理,但編譯器比較「笨」沒有看出來
3)你可以完全不理會這個警告;
4)如果確實你不想讓編譯器出這樣的警告,在scanf語句前,加上
p
=
0

顯式地為p賦初值

『伍』 用VS編譯C 出現一個警告 什麼意思啊

警告 2 warning C4013: 「getch」未定義;假設外部返回 int d:\文件類\c語言\c 語言項目\c\c\2.c 12 C源代碼是# include <stdio.h
void main(){int a[10];int i;for(i=0;i<10;i++){scanf("%d",&a[i]);}a[5]=a[5]+5;
printf("%d",a[5]);getch();}回答:很多涉及字元串的函數是不檢查越界的, 不安全。 所以後來有一套新的安全函數替代這個, 第一個warning就是建議你用 scanf_s代替scanf 第二個 warning是說你用的 getch()沒定義, 所以編譯器假定它是 int getch(void)。 用的函數最好先 include好頭文件
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS
已經是安全主導的年代了,這些老舊的東西微軟提供了一些新函式來取代,很簡單他在後面加了_s ,例如gets == gets_s ,strcpy == strcpy_s原因解釋這種微軟的警告,主要因為那些C庫的函數,很多函數內部是不進行參數檢測的(包括越界類的),微軟擔心使用這些會造成內存異常,所以就改寫了同樣功能的函數,改寫了的函數進行了參數的檢測,使用這些新的函數會更安全和便捷。關於這些改寫的函數你不用專門去記憶,因為編譯器對於每個函數在給出警告時,都會告訴你相應的安全函數,查看警告信息就可以獲知,在使用時也再查看一下MSDN詳細了解。庫函數改寫例子:
mkdir改寫為 _mkdir
fopen」改寫為 fopen_s
stricmp改寫為 stricmp_s
strcpy改寫為strcpy_s解決方案:1 根據下面的warning提示:參見「fopen」的聲明
消息:「This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.」
所以可以將函數按warning提示的第二句,改為使用fopen_s函數即可:
例如:FILE *pFile=fopen("1.txt", "w");改為:FILE* pFile;
fopen_s(&pFile, "1.txt", "w");
2 還是根據warning提示的地三句話:use _CRT_SECURE_NO_DEPRECATE
項目|屬性|配置屬性|C/C++|命令行|附加選項,加入【/D "_CRT_SECURE_NO_DEPRECATE" 】(註:加入中括弧中完整的內容)
3 降低警告級別:項目|屬性|配置屬性|C/C++|常規,自己根據情況降低警告級別(此法不推薦)
注意:高度重視警告:使用編譯器的最高警告級別。應該要求構建是干凈利落的(沒有警告)。理解所有警告。通過 修改代碼而不是降低警告級別來排除警告。
編譯器是你的朋友。如果它對某個構造發出警告,這經常是說明你的代碼中存在潛在的問題。成功的構建應該是無聲無息的(沒有警告的)。【《

『陸』 在C程序中,編譯的時候,出現的那個warning,指的是什麼意思啊急,謝謝啦!

是警告信息,對於本編譯器規則來說,符合編譯規則,但是有些是無意義的,或者大了語法的擦邊球,不完全符合,但是也能用的。大部分可以忽略。有的時候可以設置警告的等級,視編譯器而定。

『柒』 C語言編譯過程中為什麼顯示警告

此程序應該沒問題,如果有的話可能是你安裝的編譯系統有問題,建議你在別的編譯系統上試試(TC/WIN-TC)。
至於為什麼會出現警告,是由於你的程序中存在不和要求的輸入,但是警告一般不影響程序的應行,不過程序的結果一般來說是錯誤的,而且這時候程序能通過編譯,建議編譯時用快睫鍵(ALT+F9(TC編譯器))。

『捌』 這里C++編譯器的警告信息指什麼

編譯器警告(等級 1)C4806

「operation」: 不安全操作: 從類型「type」提升到類型「type」的值不能等於給定的常數
此消息對代碼 b == 3 的情況發出警告,其中 b 為 bool 類型。提升規則使 bool 被提升為 int。這是合法的,但永遠不能為 true。下面的示例生成 C4806:
// C4806.cpp
// compile with: /W1
int main()
{
bool b = true;
// try..
// int b = true;

if (b == 3) // C4806
{
b = false;
}
}

『玖』 請問Keil4在編譯的時候老是出現這兩個警告是什麼意思,怎麼解決呢

這是個警告,編譯是沒有問題的,能產生hex文件的,就是你有些函數或者變數聲明或者定義了,但是沒有使用!基本不影響使用的如果要不報這個警告的話就把沒用到的都刪除就好了

閱讀全文

與看編譯器報什麼警告相關的資料

熱點內容
影視app源碼2021 瀏覽:569
驍龍處理器屬於單片機嗎 瀏覽:573
安卓怎麼下載poppy 瀏覽:40
電子賀卡哪個app好 瀏覽:579
pplive桌面文件夾刪除不了 瀏覽:86
伺服器擠爆了什麼意思 瀏覽:261
聯通app在哪裡找客服 瀏覽:239
騰訊雲自研伺服器視頻 瀏覽:285
方舟編譯器升級好嗎 瀏覽:439
演算法工程師認證 瀏覽:894
app不見了去哪裡下載 瀏覽:614
壓縮空氣系統驗證方案 瀏覽:737
雪球app在哪裡安裝 瀏覽:304
控股平台選突破選股公式源碼 瀏覽:909
從哪裡下載數字人民幣app 瀏覽:546
winwin7網站下載文件解壓密碼 瀏覽:571
雲伺服器產品怎麼交付 瀏覽:925
反詐app在哪裡找 瀏覽:301
換手率小於前天指標源碼 瀏覽:847
什麼樣的安卓游戲能搬磚 瀏覽:814