热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

词法分析的大嘴原则

CC中的词法分析中的理解。如,、、和*只有一个符号,称之为单字符的符号,那么对于多个字符数的符号,比如,*、和

    C/C++ 中的词法分析中的理解。如,/、=、和*只有一个符号,称之为单字符的符号,那么对于多个字符数的符号,比如,/*、和 ==包含了两个的单字符,所以称之为多字符符号。

    所以,在编译器录入字符的时候,每录入一个字符,比如 / 之后就会做出判断是否已经录入完毕,如果 后面还有 *,就会合在一起组成一个多字符,重新判断是否已经录入完毕;否则 是当作录入一个字符进行处理。

    编译器录入字符的原则是:大嘴原则,也就是,尽可能录入更多字符。编译器录入字符的时候,从左到右进行一个接一个地录入字符,如果这个字符可以组成一个符号,那么继续录入时其他的符号,再判断是否可以组成一个多字符;如果可以就继续录入,重复上面的过程。这个方法曾只为大嘴原则。

1、代码理解:

a --- b

  可以理解为

a -- - b

 

但绝对不是:

a- --b

 

 

 

y = x/*p  的时候,就会出现报错的现象,

    因为录入字符的时候,会将 /* 录入进去,大嘴原则发挥了效果,编译器会认为是 注释的符号,所拥有就会报错,

解决的办法:

y = x/ *p
或者
y
= x/(*p)

Technorati 标签: C/C++,大嘴原则,词法分析,单个字符,多个字符

转:https://www.cnblogs.com/qxj511/p/5191934.html



推荐阅读
  • 批量将多张图片转换为PDF或PPT文件
    本文介绍了如何批量将多张图片转换为PDF或PPT文件的方法。首先,可以通过批量下载工具或脚本高效地获取大量图片。接着,利用专业的图像处理软件或在线服务,将这些图片统一转换为所需的PDF或PPT格式,确保文件质量和一致性。此外,文中还提供了手动抓取单张图片进行初步测试的建议,以验证转换效果。 ... [详细]
  • 在网络故障排查中,tcpdump 是一款强大的工具,尤其在 Linux 环境下。尽管开发环境中问题较少,但在测试或生产环境中,往往会遇到各种难以预料的异常情况。通过在问题发生的环境中启用 tcpdump 进行抓包,并重现问题,可以获取到宝贵的原始数据,为问题的诊断提供关键线索。本文将详细介绍如何使用 tcpdump 进行实战操作,帮助读者掌握这一技能。 ... [详细]
  • 在使用 `requests` 库进行 HTTP 请求时,如果遇到 `requests.exceptions.SSLError: HTTPSConnectionPool` 错误,通常是因为 SSL 证书验证失败。解决这一问题的方法包括:检查目标网站的 SSL 证书是否有效、更新本地的 CA 证书库、禁用 SSL 验证(不推荐用于生产环境)或使用自定义的 SSL 上下文。此外,确保 `requests` 库和相关依赖项已更新到最新版本,以避免潜在的安全漏洞。 ... [详细]
  • 如何在 PHPStorm 2017 中禁用参数名称提示功能
    在 PHPStorm 2017 中,若需禁用参数名称提示功能,可在设置面板中通过搜索 "hints" 进入相关路径,具体为:编辑器 > 常规 > 外观 > 显示参数名称提示,并取消该选项前的勾选。这一操作将有效关闭参数名称提示,提升代码编辑的整洁度和专注度。 ... [详细]
  • 在解决区间相关问题时,我发现自己经常缺乏有效的思维方式,即使是简单的题目也常常需要很长时间才能找到解题思路,而一旦得到提示便能迅速理解。题目要求对一个包含n个元素的数组进行操作,并给出一个参数k,具体任务是…… ... [详细]
  • 随着CRM版本的更新,某些功能可能不再可用。本文探讨了一种高效的替代方案,通过编写 `function loadFrom()` 来识别和区分不同的编辑窗口。该方法利用了Xrm.Page对象的特性,确保在不同版本的CRM中都能稳定运行。此外,文章还详细介绍了如何通过检测页面类型和上下文信息来优化用户体验。 ... [详细]
  • Golomb 编码是一种高效的变长编码技术,专门用于整数的压缩。该方法通过预定义的参数 \( M \) 将输入整数分解为商 \( q \) 和余数 \( r \) 两部分。具体而言,输入整数除以 \( M \) 得到商 \( q \) 和余数 \( r \),其中商 \( q \) 采用一元编码表示,而余数 \( r \) 则使用二进制编码。这种编码方式在数据压缩和信息传输中具有显著的优势,特别是在处理具有特定概率分布的数据时表现出色。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • Java 中 print、println 和 printf 的功能与区别详解
    在 Java 中,`print` 方法将参数内容输出到控制台,并将光标停留在最后一个字符的后面。而 `println` 方法不仅显示参数内容,还会在输出结束后自动添加一个换行符,使下一次输出从新的一行开始。此外,`printf` 方法则提供了更灵活的格式化输出选项,允许用户通过指定格式字符串来控制输出的格式和样式。这三种方法各有特点,适用于不同的输出需求。 ... [详细]
  • 今天与一位老同事相约见面,讨论了我即将加入的新公司的情况及未来发展的初步规划。下班后,他在公司找到了我,晚上7点左右我们在凯德mall共进晚餐,选择了一家环境舒适的餐厅。这次交流不仅加深了我们的情谊,还为我的职业发展提供了宝贵的意见和建议。 ... [详细]
  • 如何在Lua中调用C语言编译的动态链接库
    本文介绍了如何在Lua中调用C语言编译的动态链接库。通过详细步骤和示例代码,帮助开发者理解和掌握这一技术。参考了《Lua编程入门》一书中的相关内容,并结合实际操作经验,提供了更加清晰和实用的指导。此外,还探讨了在不同操作系统下编译和链接Lua的方法,为跨平台开发提供了有价值的参考。 ... [详细]
  • Java 中 ZonedDateTime 类的天数方法详解及示例代码 ... [详细]
  • Kafka核心理论问题汇编【持续更新中】
    本文汇总了Kafka的核心理论问题,涵盖了常见的技术难点和解决方案。内容将持续更新,旨在为开发者提供全面的参考。文章源自博客园,作者呱嗒呱嗒,转载时请注明出处。 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • 在使用Block时,正确的声明方法和确保线程安全是至关重要的。为了保证Block在堆中分配,应使用`copy`修饰符进行声明,因为栈中的Block与栈的生命周期绑定,容易导致内存问题。此外,还需注意Block捕获外部变量的行为,以避免潜在的循环引用和数据不一致问题。建议深入研究相关文档,以掌握更多高级技巧和最佳实践。 ... [详细]
author-avatar
王孟儒062
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有