admin 管理员组

文章数量: 1087139


2024年4月27日发(作者:aql抽样培训)

c语言define不带后面的语句

#define是c语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的

方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的

本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不

一致,或者在读别人写的程序时,把运行结果理解错误,这对 c语言的学习很不利。

1. #define命令剖析

#define命令就是c语言中的一个宏定义命令,它用以将一个标识符定义为一个字符

串,该标识符被称作宏名,被定义的字符串称作替代文本。

该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。

(1) 直观的宏定义:

#define <宏名> <字符串>

基准: #define pi 3.

(2) 带参数的宏定义

#define <宏名> (<参数表>) <宏体>

例: #define a(x) x

一个标识符被宏定义后,该标识符就是一个宏名。这时,在程序中发生的就是宏名,

在该程序被编程前,先将宏名用被定义的字符串替代,这称作宏替代,替代后才展开编程,

宏替代就是直观的替代。

1.2 宏替换发生的时机

为了能真正认知#define的促进作用,使我们去介绍一下对c语言源程序的处理过程。

当我们在一个内置的研发环境如turbo c中将撰写不好的源程序展开编程时,实际经过了

预处理、编程、编订和相连接几个过程,见到图1。

源程序预处理器修改后的源程序编译器汇编程序汇编器可重定位的目标程序连接器可

执行的目标程序图1 c语言的编译过程

其中进度表处理器产生编译器的输入,它同时实现以下的功能:

(1) 文件包含

可以把源程序中的#include 拓展为文件正文,即为把涵盖的.h文件找出并进行至

#include 所在处。

(2) 条件编译


本文标签: 定义 命令 替代