C基础(六)预处理命令

    xiaoxiao2023-11-22  170

    书目《C程序设计(第三版)》

    C提供的预处理功能主要有宏定义、文件包含、条件编译三种,为了与一般C语言语句相区别,这些命令以"#"开头。

    (一)宏定义 1、一般形式为:#define 标识符 字符串 带参数形式为:#define 宏名(参数表) 字符串 2、带参数的宏定义与函数是不同的: a.函数调用时,先求出实参表达式的值,然后代入形参,而使用带参数的宏定义只是进行简单的字符替换; b.函数调用是在程序运行时处理的,为形参分配临时的内存单元,而宏展开是在编译前进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有“返回值”的概念; c.函数的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题; d.调用函数只可得到一个返回值,而用宏可以设法得到几个结果; e.宏展开会使得程序变长,而函数调用不会使源程序变长; f.宏替换不占运行时间,只占编译时间,而函数调用则占用运行时间;

    (二)文件包含 所谓"文件包含"处理是指一个源文件可以将另外一个源文件的全部内容包含进来。 其一般形式为:#include "文件名"或者#include <文件名>

    (三)条件编译 有时希望程序中一部分内容只在满足一定条件时才进行编译,这就是“条件编译”。该预编译功能是C语言特有的。

    最新回复(0)