程序预处理阶段在做什么_第1页
程序预处理阶段在做什么_第2页
程序预处理阶段在做什么_第3页
程序预处理阶段在做什么_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。预处理指令包括条件编译、源文件包含、宏替换、行控制、抛错、杂注和空指令。1、条件编译条件编译的功能是根据条件有选择性的保留或者放弃源文件中的内容。常见的条件包含#if、#ifdef、#ifndef指令开始,以#endif结束。用#undef指令可对用#define定义的标识符取消定义。例:#ifdefined(CREDIT)credit();#elifdefined(DEBIT)debit();#elseprinterror();#endif2、源文件包含源文件包含指令的功能是搜索指定的文件,并将它的内容包含进来,放在当前所在的位置。源文件包含有两种,包含系统文件以及用户自定义文件。#include

<stdio.h>

让C编译器去系统目录下查找相关文件#include

"test.c"让C编译器去用户目录下查找相关文件3、宏替换宏的作用是把一个标识符指定为其他一些成为替换列表的预处理记号,当这个标识符出现在后面的文本中时,将用对应的预处理记号把它替换掉,宏的本质是替换。宏的定义分为两种方式:有参和无参。1、无参数的宏(对象式宏定义)#define

MAX

1002、有参数的宏(函数式宏定义)#define

MAX(a,b)

((a)>(b)?(a):(b))关于宏的更多知识查看此文章:C语言中宏定义的盲区4、行控制行控制指令以"#"和“line”引导,后面是行号和可选的字面串。它用于改变预定义宏"__LINE__"的值,如果后面的字面串存在,则改变“__FILE__”的值。仔细看下面的例程就能很快了解。最左边显示的是行号,之后用#line改变了行号,于是#line的下一行就是3。5、抛错抛错指令是以“#”和“error”引导,抛错指令用于在预处理期间发出一个诊断信息,在停止转换。抛错是人为的动作。下面是个一个简单的例程,抛错后,编译器会有提示。6、杂注杂注指令用于向C实现传递额外的信息(编译选项),对程序的某些方面进行控制。杂注指令以“#”开始,跟着“pragma”,后面是其他预处理记号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论