四、语法分析阶段

本文通过一个C++代码示例展示了在编译过程中语法分析阶段的重要性。在给出的代码中,尝试将一个字符串赋值给整型变量,导致了编译错误。错误提示指出在语法分析阶段发现了类型不匹配的问题,编译因此中断。理解编译器的词法、语法和语义分析阶段对于解决此类错误至关重要。
摘要由CSDN通过智能技术生成

语法分析阶段可以分成以下三个阶段:

  • 词法分析:将源代码分割成不可分割的单词。
  • 语法分析:将提取出来的单词连接成单词序列,并根据编程语言规则验证其顺序是否合理。
  • 语义分析:目的是发现符合语法规则的语句是否有实际意义。

    归纳起来,语言分析阶段编译器最主要完成检查处理过程中遇到的拼写错误或者其他错误。

代码实例:

//This is demo1.cpp
#include <iostream>
using namespace std;
int main(int argc,char ** argv)
{
	int a = 1,b = "p";	
	cout << a << b << endl;
}
//在C ++中,int main()可以不带返回值,此时默认返回0

执行以下命令:

D:\software\项目\Code>g++ -c demo1.cpp

编译后的结果:

 没有输出.o文件表明 编译失败,即中断。这里也有失败的提示

结果解释:

        代码的结构没有问题,但是定义b的类型是int类型的,亦即数字型的,必须给b一个整数,但是给了一个字符串,语法分析检查出这个错误,编译过程停止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值