所谓语法错误是指在书写语句时没有按照相应的语法格式。常见的语法错误有变量未定义、括号不匹配、遗漏了分号等等。大多数的语法错误都是能够被编译器发现的。因此相比于语意错误,语法错误更容易被发现,更容易被解决。
语法检查的工作由编译器完成,很多情况下编译器无法智能地报告出真正的语法错误数和错误位置。比如缺少一个变量的定义,而该变量在程序中被使用了6次,则编译器可能会报告6个甚至更多的语法错误,而实际上错误只有一个。所以,对编译器来说,任何一个语法错误都可能是“牵一发而动全身”的。
那么在这种可能发生“误报”的情况下,我们如何快速、正确地找到错误的位置呢?
由于编译器是按顺序查找语法错误的,所以它所找到的第一个错误的位置往往是正确的。如果程序规模不大,编译一次的时间不是很长,我们可以每次只修正编译器报告的第一个错误以及由此可以发现的连带错误,直到整个程序没有任何错误为止。
下面我们就用这种方法来检查一个程序的语法错误:(程序11.3.1)
#include <iostream>
mian()
{
int a,b;
for (i=0,i<3,i++)
语法检查的工作由编译器完成,很多情况下编译器无法智能地报告出真正的语法错误数和错误位置。比如缺少一个变量的定义,而该变量在程序中被使用了6次,则编译器可能会报告6个甚至更多的语法错误,而实际上错误只有一个。所以,对编译器来说,任何一个语法错误都可能是“牵一发而动全身”的。
那么在这种可能发生“误报”的情况下,我们如何快速、正确地找到错误的位置呢?
由于编译器是按顺序查找语法错误的,所以它所找到的第一个错误的位置往往是正确的。如果程序规模不大,编译一次的时间不是很长,我们可以每次只修正编译器报告的第一个错误以及由此可以发现的连带错误,直到整个程序没有任何错误为止。
下面我们就用这种方法来检查一个程序的语法错误:(程序11.3.1)
#include <iostream>
mian()
{
int a,b;
for (i=0,i<3,i++)










