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语言如何翻译一个语句相关推荐

  1. c语言商场收款程序,c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式...

    c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语 ...

  2. c语言注释语句执行吗,C语言学习笔记之C语言概念解析(附资料分享)每一个语句都必须以分号结尾但预处理命令函数头和花括号“}”之后不能加分号...

    [[怪兽爱C语言]C语言学习笔记之C语言概念解析(附资料分享)]https://toutiao.com/group/6582429294901854728/?iid=15906422033&a ...

  3. 制作一个多语言谷歌翻译 脚本

    1.修改host文件:C:\Windows\System32\drivers\etc 加入以下配置 # google translate 203.208.40.66 translate.google. ...

  4. 把python语言翻译出来_Python语言实现翻译小工具(Python打包成exe文件)

    本文主要向大家介绍了Python语言实现翻译小工具(Python打包成exe文件),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.环境 windows10 python3.5 ...

  5. 机器翻译:谷歌翻译是如何对几乎所有语言进行翻译的?

    机器翻译:谷歌翻译是如何对几乎所有语言进行翻译的? 谷歌翻译大家想必都不陌生,但你有没有想过,它究竟是如何将几乎所有的已知语言翻译成我们所选择的语言? 作者:读芯术来源:今日头条|2020-10-11 ...

  6. c语言规范标准中英文,C语言中英文翻译资料.doc

    C语言中英文翻译资料.doc The C Programming LanguageC is a high-level programming language developed by Dennis ...

  7. c语言规定对于一个正常运行的c程序,下列叙述中正确的是,计算机二级C语言复习第*周...

    本周概念总结: 第*周(一): 1.        C语言程序分函数编写,函数又由语句组成. 2.        main函数有且只有一个,是程序的入口和出口. 3.        每条语句结尾必须有 ...

  8. Qt中,软件多语言国际化翻译的方法与步骤

    Qt中,软件多语言国际化翻译的方法与步骤 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法 ...

  9. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

最新文章

  1. Java8的集合:ArrayList的实现原理
  2. java---实现闹钟的基本功能
  3. unity 异步加载网络图片_一个非常好用的AssetBundle资源加载器
  4. GDCM:将PAPYRUS 3.0文件转换为dcm文件的的测试程序
  5. oracle与sqlserver差异,Oracle与SQLServer的SQL语法差异总结
  6. 使用Spring将POJO公开为JMX MBean
  7. php连接数据库返回数据类型,php从数据库读取数据,并以json格式返回数据的方法...
  8. supervisor、pm2、forever坐下来聊聊
  9. login.html错误,创建好login.html文件后,在git bash执行webpack出现错误
  10. 模式识别经典算法——Kmeans图像聚类分割(以最短的matlab程序实现)
  11. c语言实训项目,C语言项目实训教程
  12. mysql关联力控_力控软件和三菱PLC的通讯模块通讯设定
  13. rog live service是什么_「评测」三模无线,微动随心换,华硕ROG 烈刃2满足所有游戏需求...
  14. 所有计算机都可以安装win7,t570都可以装win7系统吗_win7 64位系统所有电脑都能装吗...
  15. ai-tb.cn 这里面的数据就该都是淘宝的,现在去哪抓取?
  16. [转]最常用的商务职场英语邮件100个句式
  17. Python中的可变对象和不可变对象
  18. 全局最优和局部最优 世俗理解以及原理解释
  19. 【Redis详细安装教程】
  20. 五个小众好用的搜索引擎

热门文章

  1. 创业案例:七分食:专业健身餐制作者,且吃且塑形
  2. 坠毁的波音737 Max:一部人类无法控制的机器
  3. python 机械人_为什么python适合机器人
  4. Java毕业设计_基于spring的一汽大众4s店汽车销售系统的设计与实现
  5. 7-1 分离目录路径和文件名
  6. php mpdf类,php – 使用mpdf在div上的某个类匹配后添加分页符
  7. [转载] 测试一个杯子
  8. 输入本金和年份并算出利息本金和
  9. 为炒股而努力自学Python ->基础知识: 开卷有益
  10. GAMIT表文件更新