第14章 预处理及用户配置文件

• 预处理命令通常在程序编译时进行一些符号处 理,其并不执行具体的硬件操作。C51语言中的预 处理命令主要有宏定义指令、文件包指令和条 件编译指令,还有其他一些调试时使用的指令。 本章将详细介绍各种预处理命令以及C51的用户配 置文件,并结合一定的程序实例以加深理解。本 章包括:

  • 宏定义指令

  • 文件包指令

  • 条件编译指令

  • C51编译器的控制指令

  • C51的用户配置文件

14.1 预处理命令概述

• C51语言中提供了各种预处理命令,类似于汇编程序中的伪指令。一般来说,在对源程序进行编译前,C51编译器需要 先对程序中的预处理命令进行处理,然后将预处理的结果与源程序一并进行编译,最后产生目标代码。通过这些预处 理命令,在很大程度上为C51提供功能和符号等方面的扩展,使用预处理命令也可以提高程序的可读性。

  • 为了与源程序中的语句相区

    c语言编译命令的更多相关文章

    1. 14. Go 语言编译与工具

      Go 语言编译与工具 Go 语言的工具链非常丰富,从获取源码.编译.文档.测试.性能分析,到源码格式化.源码提示.重构工具等应有尽有. 在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即 ...

    2. [C语言]在命令行编译执行程序

      ----------------------------------------------------------------------------------------- [开始] 1. 在M ...

    3. 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出

      [源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...

    4. c语言编译预处理和条件编译执行过程的理解

      在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令.预处理命令属于C语言编译器,而不是C语言的组成部分.通过预处理命令可扩展C语言程序设计的环境. 一.预处理的工作方式 1.1. ...

    5. 不同优化选项对ARM下C语言编译的影响

      我们知道在C语言编译时,有那么几个常用的优化编译选项,分别是-O0,-O1,-O2,-O3以及-Os.之前一直觉得既然是优化选项,顶多是优化一下逻辑,提高一些效率或者减少一下程序大小而已.很少会觉得它 ...

    6. C语言预处理命令总结大全

      C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性.ANS ...

    7. C语言预处理命令详解

      一  前言 预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置. 预处理是C语言的一个重要功能 ...

    8. GCC编译命令常用选项

      GCC是GUN Compiler Collection的简称,除编译程序外,还包含其他相关工具.GCC可将高级语言编写的源代码构建成计算机直接执行的二进制代码.GCC是Linux平台下最常用的编译程序 ...

    9. [转]C语言预处理命令详解

      转载:https://www.cnblogs.com/clover-toeic/p/3851102.html 一  前言 预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的 ...

    随机推荐

    1. 去掉word冗余格式 java正则表达式

      word转换html时,会留下很多格式,有些格式并不是我们所需要的,然而这些格式比真正的文章内容还要多,严重影响页面的加载速度,因此就需要找个一个好的解决方案把这些多余的格式个去掉.网上有很多去除wo ...

    2. oracle之nomount、mount、open三种状态

      1.先来看下外国网站上的资料怎么说 Nomount – The database instance has been started (processes and memory structures ...

    3. Java多线程--让主线程等待所有子线程执行完毕

      数据量很大百万条记录,因此考虑到要用多线程并发执行,在写的过程中又遇到问题,我想统计所有子进程执行完毕总共的耗时,在第一个子进程创建前记录当前时间用System.currentTimeMillis() ...

    4. Linux权限解释

      从左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 而具体的权限是由数字来表示的,读取的权限等于4,用r表示:写入的权限等于2,用w表示:执行的权限 ...

    5. html历史

      方法一: location.hash = 'abc' window.onhashchange = function(){} location.hash  返回结果 #abc  => locati ...

    6. struts2防止重复提交的标签

      struts2 token 使用说明 --------------------------------------------------------------------------------- ...

    7. 转-CSS优先级(权重)解析

      1.多个选择器可能会选择同一个元素,有3个规则,从上到下重要性降低: !important的用户样式 !important的作者样式 作者样式 用户样式 浏览器定义的样式 2. CSS规范为不同类型的 ...

    8. What is Flux?

      Pluralsight - React and Flux for Angular Developers 1. An architectural concept. It a idea. 2. Not a ...

    9. B树(B-树)

      1.什么是B树(B-树)? B树是一种m阶树,m>=2 性质: 1)树中每个结点至多m个孩子: 2)对于根结点,子树个树取值范围为[2,m],关键字个数范围[1,m-1]: 3)对于非根非叶结点 ...

    10. treeview自动从表中添加标题和列值做目录的方法2

      treeview自动从表中添加标题和列值做目录的方法2,该方法是借鉴万一老师的 http://www.cnblogs.com/del/archive/2008/05/15/1114450.html 首 ...