亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++調試過程中如何檢查語法錯誤

2020-05-23 14:26:30
字體:
來源:轉載
供稿:網友
所謂語法錯誤是指在書寫語句時沒有按照相應的語法格式。常見的語法錯誤有變量未定義、括號不匹配、遺漏了分號等等。大多數的語法錯誤都是能夠被編譯器發現的。因此相比于語意錯誤,語法錯誤更容易被發現,更容易被解決。

語法檢查的工作由編譯器完成,很多情況下編譯器無法智能地報告出真正的語法錯誤數和錯誤位置。比如缺少一個變量的定義,而該變量在程序中被使用了6次,則編譯器可能會報告6個甚至更多的語法錯誤,而實際上錯誤只有一個。所以,對編譯器來說,任何一個語法錯誤都可能是“牽一發而動全身”的。

那么在這種可能發生“誤報”的情況下,我們如何快速、正確地找到錯誤的位置呢?

由于編譯器是按順序查找語法錯誤的,所以它所找到的第一個錯誤的位置往往是正確的。如果程序規模不大,編譯一次的時間不是很長,我們可以每次只修正編譯器報告的第一個錯誤以及由此可以發現的連帶錯誤,直到整個程序沒有任何錯誤為止。

下面我們就用這種方法來檢查一個程序的語法錯誤:(程序11.3.1)
#include <iostream>
mian()
{
   int a,b;
   for (i=0,i<3,i++)
   {
      cin >>a >>b;
      c=a+b;
      cout <<c <<endl;
   }
   return 0;
}
第一次編譯的第一個錯誤:
I:/program/vc/book/11_3_1/main.cpp(5) : error C2065: 'i' : undeclared identifier//未聲明的標識符
……
main.obj - 7 error(s), 3 warning(s)//一共還有7個錯誤和3個警告

第一次修改:
for (int i=0,i<3,i++)
第二次編譯的第一個錯誤:
I:/program/vc/book/11_3_1/main.cpp(5) : error C2143: syntax error : missing ',' before '<'//逗號語法錯誤
……
main.obj - 8 error(s), 3 warning(s) //一共還有8個錯誤和3個警告

第二次修改:
for (int i=0;i<3;i++)
第三次編譯的第一個錯誤:
I:/program/vc/book/11_3_1/main.cpp(7) : error C2065: 'cin' : undeclared identifier//未聲明的標識符
……
main.obj - 4 error(s), 3 warning(s) //一共還有4個錯誤和3個警告

第三次修改:
添加using namespace std;
第四次編譯的第一個錯誤:
I:/program/vc/book/11_3_1/main.cpp(9) : error C2065: 'c' : undeclared identifier//未聲明的標識符
……
main.obj - 1 error(s), 1 warning(s)//一共還有1個錯誤和1個警告
第四次修改:
int c=a+b;
第五次編譯的第一個錯誤:
I:/program/vc/book/11_3_1/main.cpp(12) : warning C4508: 'mian' : function should return a value; 'void' return type assumed//函數需要返回一個值
……
main.obj - 0 error(s), 1 warning(s) //一共還有1個警告

第五次修改:
int mian()
第六次編譯:
main.obj - 0 error(s), 0 warning(s)//編譯正確
第一次連接的第一個錯誤:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main//沒有main函數
……
11_3_1.exe - 2 error(s), 0 warning(s)//一共還有2個錯誤

第六次修改:
int main()
第七次編譯:
main.obj - 0 error(s), 0 warning(s)//編譯正確
第二次連接:
11_3_1.exe - 0 error(s), 0 warning(s)//連接正確

完整的程序:
#include <iostream>
using namespace std;
int main()
{
   int a,b;
   for (int i=0;i<3;i++)
   {
      cin >>a >>b;
      int c=a+b;
      cout <<c <<endl;
   }
   return 0;
}

至此,整個程序的所有語法錯誤都被檢查出來并且被修正。程序編譯階段沒有任何錯誤了。通過對這個程序的語法檢查,我們總結出以下幾點:
  1. 編譯器所報告的第一個錯誤位置往往是有效的,但是報告的錯誤內容未必正確。比如第二次編譯時報告的錯誤是“在小于號之前缺少了逗號”,而事實上問題是for語句中應該使用分號。所以,報告的錯誤內容只能參考,卻不能完全相信。
  2. 編譯器報告的錯誤數目與實際錯誤數目未必符合。甚至第一次改正一個錯誤后,錯誤數反而增加了。所以,報告的錯誤數目不能正確描述實際的錯誤規模。
  3. 編譯器報告的警告也應當被重視。有些人認為即使程序存在警告,但是它能正常執行,所以警告可以被忽視。這種想法是錯誤的。如果一個程序是完美的,為什么編譯器還要給出警告呢?警告的存在就說明了這個程序有些地方還不符合正確的語法。
  4. I:/program/vc/book/11_3_1/main.cpp(5)括號中的5表示錯誤在程序的第5行。我們不需要自己去數行數,只需要雙擊這個錯誤就能到達對應的行。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成年人视频网站| 久久久久久久久久av| 久久人人爽人人爽爽久久| 亚洲一区二区自拍| 久久久999精品免费| 美日韩在线视频| 亚洲性夜色噜噜噜7777| 欧美成人免费全部| 亚洲欧美另类自拍| 日本亚洲欧洲色| 91亚洲精华国产精华| 日韩美女av在线| 国产精品高潮粉嫩av| 18一19gay欧美视频网站| 国产色婷婷国产综合在线理论片a| 亚洲在线第一页| 精品久久久久久久久久久久久久| 一区二区三区黄色| 中文字幕在线看视频国产欧美| 欧美一区二区三区四区在线| 国产精品久久久久99| 日韩经典第一页| 欧美在线亚洲在线| 91高潮精品免费porn| 992tv成人免费视频| 久热精品视频在线免费观看| 国产亚洲人成网站在线观看| 亚洲成人精品久久| 国产91对白在线播放| 日韩免费高清在线观看| 91人人爽人人爽人人精88v| 日韩在线视频线视频免费网站| 国产精品91久久久久久| 国产精品入口日韩视频大尺度| 美日韩精品免费视频| 国产欧美精品一区二区三区介绍| 日韩国产欧美精品一区二区三区| 久久久久999| 亚洲精品一区二三区不卡| 欧美成人免费在线观看| 国产69久久精品成人| 欧美性猛交xxxx久久久| 亚洲午夜久久久影院| 精品久久久久久久久久| 久久久伊人日本| 亚洲女人天堂视频| 亚洲国产小视频| 亚洲精品网址在线观看| 欧美一级大胆视频| 伊人久久久久久久久久久久久| 97精品国产91久久久久久| 视频在线观看一区二区| 欧美日韩午夜剧场| 日韩成人小视频| 国产主播精品在线| 日韩不卡中文字幕| 亚洲资源在线看| 午夜精品美女自拍福到在线| 欧美激情啊啊啊| 欧美夜福利tv在线| 精品人伦一区二区三区蜜桃免费| 欧美巨大黑人极品精男| 日韩激情片免费| 韩剧1988免费观看全集| 久久精品精品电影网| 这里精品视频免费| 国产激情999| 国产精品吹潮在线观看| 成人观看高清在线观看免费| 在线国产精品播放| 日韩成人在线视频观看| 国产精品小说在线| 国产精品99免视看9| 欧美成人在线免费视频| 亚洲一区二区在线播放| 国产精品老牛影院在线观看| 在线观看中文字幕亚洲| 色综合久综合久久综合久鬼88| 亚洲欧美制服综合另类| 欧美激情网站在线观看| 欧美精品性视频| 91久久精品在线| 亚洲国产成人一区| 中文字幕日韩在线视频| 久久国产一区二区三区| 青青久久av北条麻妃黑人| 国产精品稀缺呦系列在线| 91在线精品视频| 国产在线视频一区| 日韩精品电影网| 久久免费高清视频| 国产精品一区二区三区在线播放| 视频在线观看99| 亚洲a级在线观看| 亚洲精品v欧美精品v日韩精品| 成人中心免费视频| 国产成人精品一区| 日韩精品久久久久久久玫瑰园| 日本欧美精品在线| 黑人巨大精品欧美一区二区| 日韩精品视频免费| 中文字幕av一区中文字幕天堂| 精品久久久久久久久中文字幕| 亚洲国模精品一区| 亚洲国产欧美自拍| 成人黄色免费看| 自拍偷拍亚洲一区| 在线精品视频视频中文字幕| 欧美在线影院在线视频| 欧美亚洲成人免费| 亚洲一二在线观看| 欧美多人乱p欧美4p久久| 国产成人精品综合久久久| 欧美性猛交xxxx偷拍洗澡| 97色在线视频| 亚洲精品久久久久中文字幕欢迎你| 国产又爽又黄的激情精品视频| 九九综合九九综合| 91九色国产在线| 国产精品男人的天堂| 国产69久久精品成人看| 国产91在线播放精品91| 亚洲成人黄色网| 77777少妇光屁股久久一区| 亚洲视频在线观看免费| 精品国产乱码久久久久久婷婷| 欧美午夜片在线免费观看| 久久国产精品久久久| 亚洲综合中文字幕在线观看| 欧美激情在线播放| 日本最新高清不卡中文字幕| 亚洲97在线观看| 欧美日韩国产成人在线观看| 2020国产精品视频| 91精品国产高清自在线看超| 81精品国产乱码久久久久久| 国产ts一区二区| 亚洲免费电影在线观看| 97在线视频国产| 黑人巨大精品欧美一区二区一视频| 国产精品∨欧美精品v日韩精品| 91探花福利精品国产自产在线| 欧美韩国理论所午夜片917电影| 久久久久久亚洲精品不卡| 国产精品99免视看9| 亚洲欧美色图片| 亚洲精品电影网在线观看| 欧美一区二区三区免费视| 国产亚洲欧美aaaa| 欧美丝袜美女中出在线| 国产999精品久久久影片官网| 亚洲美女av黄| 国产精品私拍pans大尺度在线| 亚洲xxxxx电影| 午夜精品蜜臀一区二区三区免费| 激情懂色av一区av二区av| 国产成人精品电影| 国产精品91久久久久久| 精品无人区乱码1区2区3区在线| 97精品欧美一区二区三区| 一区二区亚洲精品国产| 色爱av美腿丝袜综合粉嫩av| 欧美激情综合亚洲一二区| 国产精品久久综合av爱欲tv|