C语言如何翻译一个语句
C预处理器在程序执行之前查看程序(故称之为预处理器)。
根据程序中的预处理器指令,预处理器把符号缩写替换成其表示的内容。预处理器可 以包含程序所需的其他文件,可以选择让编译器查看哪些代码。预处理器并不知道 C。
基本上它的工作是把一些文本转换成另外一些文本。这样描述预处理器无法体现它的真正效用和价值,我们将在本章举例说明。
在预处理之前,编译器必须对该程序进行一些翻译处理。
首先,编译器 把源代码中出现的字符映射到源字符集。该过程处理多字节字符和三字符序列——字符扩展让C更加国际化
第二,编译器定位每个反斜杠后面跟着换行符的实例,并删除它们。也 就是说,
把下面两个物理行(physical line):
printf("That's wond\
erful!\n");
转换成一个逻辑行(logical line):
printf("That's wonderful\n!");
注意,在这种场合中,“换行符”的意思是通过按下Enter键在源代码文件 中换行所生成的字符,而不是指符号表征\n。
由于预处理表达式的长度必须是一个逻辑行,所以这一步为预处理器做 好了准备工作。一个逻辑行可以是多个物理行。
第三,编译器把文本划分成预处理记号序列、空白序列和注释序列(记号是由空格、制表符或换行符分隔的项)。这里要注意的是, 编译器将用一个空格字符替换每一条注释。因此,下面的代码:
int/* 这看起来并不像一个空格*/fox;
将变成:
int fox;
而且,实现可以用一个空格替换所有的空白字符序列(不包括换行符)。最后,程序已经准备好进入预处理阶段,预处理器查找一行中以#号 开始的预处理指令。
C语言如何翻译一个语句相关推荐
- c语言商场收款程序,c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式...
c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语 ...
- c语言注释语句执行吗,C语言学习笔记之C语言概念解析(附资料分享)每一个语句都必须以分号结尾但预处理命令函数头和花括号“}”之后不能加分号...
[[怪兽爱C语言]C语言学习笔记之C语言概念解析(附资料分享)]https://toutiao.com/group/6582429294901854728/?iid=15906422033&a ...
- 制作一个多语言谷歌翻译 脚本
1.修改host文件:C:\Windows\System32\drivers\etc 加入以下配置 # google translate 203.208.40.66 translate.google. ...
- 把python语言翻译出来_Python语言实现翻译小工具(Python打包成exe文件)
本文主要向大家介绍了Python语言实现翻译小工具(Python打包成exe文件),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.环境 windows10 python3.5 ...
- 机器翻译:谷歌翻译是如何对几乎所有语言进行翻译的?
机器翻译:谷歌翻译是如何对几乎所有语言进行翻译的? 谷歌翻译大家想必都不陌生,但你有没有想过,它究竟是如何将几乎所有的已知语言翻译成我们所选择的语言? 作者:读芯术来源:今日头条|2020-10-11 ...
- c语言规范标准中英文,C语言中英文翻译资料.doc
C语言中英文翻译资料.doc The C Programming LanguageC is a high-level programming language developed by Dennis ...
- c语言规定对于一个正常运行的c程序,下列叙述中正确的是,计算机二级C语言复习第*周...
本周概念总结: 第*周(一): 1. C语言程序分函数编写,函数又由语句组成. 2. main函数有且只有一个,是程序的入口和出口. 3. 每条语句结尾必须有 ...
- Qt中,软件多语言国际化翻译的方法与步骤
Qt中,软件多语言国际化翻译的方法与步骤 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法 ...
- 单片机c语言中的循环语句,单片机c语言教程:C51循环语句
循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...
最新文章
- Java8的集合:ArrayList的实现原理
- java---实现闹钟的基本功能
- unity 异步加载网络图片_一个非常好用的AssetBundle资源加载器
- GDCM:将PAPYRUS 3.0文件转换为dcm文件的的测试程序
- oracle与sqlserver差异,Oracle与SQLServer的SQL语法差异总结
- 使用Spring将POJO公开为JMX MBean
- php连接数据库返回数据类型,php从数据库读取数据,并以json格式返回数据的方法...
- supervisor、pm2、forever坐下来聊聊
- login.html错误,创建好login.html文件后,在git bash执行webpack出现错误
- 模式识别经典算法——Kmeans图像聚类分割(以最短的matlab程序实现)
- c语言实训项目,C语言项目实训教程
- mysql关联力控_力控软件和三菱PLC的通讯模块通讯设定
- rog live service是什么_「评测」三模无线,微动随心换,华硕ROG 烈刃2满足所有游戏需求...
- 所有计算机都可以安装win7,t570都可以装win7系统吗_win7 64位系统所有电脑都能装吗...
- ai-tb.cn 这里面的数据就该都是淘宝的,现在去哪抓取?
- [转]最常用的商务职场英语邮件100个句式
- Python中的可变对象和不可变对象
- 全局最优和局部最优 世俗理解以及原理解释
- 【Redis详细安装教程】
- 五个小众好用的搜索引擎