> 文章列表 > C程序设计语言——九、编译预处理命令

C程序设计语言——九、编译预处理命令

C程序设计语言——九、编译预处理命令

目录

一、预处理命令概念

1、概念

2、C提供的预处理功能主要包括

3、格式

二、无参宏——不带参数的宏定义

1、一般形式:#define 标识符 字符串

2、知识点

三、有参数——带参数的宏定义

1、一般形式:#define 标识符(形参) 字符串

2、知识点:

四、文件包含

#include<~>   把另外一个源程序的全部内容嵌入到源程序中来

1、#iclude<文件名>   标准目录

2、#include "文件名"


一、预处理命令概念

1、概念

“编译预处理命令”是进行编译第一次扫描前,系统自动先对程序的预处理部分进行编译,然后才对源程序进行编译

2、C提供的预处理功能主要包括

  1. 宏定义
  2. 文件包含
  3. 条件编译

3、格式

  1. #开头
  2. 单独占一行
  3. 结尾不加分号

二、无参宏——不带参数的宏定义

1、一般形式:#define 标识符 字符串

  1. 标识符称为“宏名”,通常为大写英文字母,以区别其他标识符;
  2. 预处理时原样替换(宏展开,而不管其含义是否正确,一直到对宏展开的结果进行编译时,才会产生错误提示;

2、知识点

  1. 字符串中的宏,不进行宏替换

  2. 宏定义嵌套:原样替换

  3. 只做宏替换


三、有参数——带参数的宏定义

1、一般形式:#define 标识符(形参) 字符串

  1. #define SQ(n)  n*n

2、知识点:

  1. 宏名和形参之间不能有空格

  2. 形参不分配内存,不必做类型说明

  3. 宏调用中的实参可以是表达式,宏定义中的形参是标识符

  4. 宏不分配内存,不占用程序运行时间,只占用编译时间


四、文件包含

#include<~>   把另外一个源程序的全部内容嵌入到源程序中来

1、#iclude<文件名>   标准目录

只检索C语言编译系统所确定的标准目录

2、#include "文件名"

首先对使用包含文件的源文件所在的目录进行检索。若没有找到指定的文件,再在标准目录中检索

3、知识点

  1. include 语句包含的文件如有变化,则包含这个文件的源程序应重新编译
  2. 一个include只包含一个文件
  3. 文件包含允许嵌套:3(2(1))
  4. 编译时,是将两个文件作为一个源程序进行编译,得到一个 .obj