C语言基础教程(四)指针、结构、联合和枚举(19)

预处理指令
由ANSI的标准规定,预处理指令主要包括:
#define
#error
#if
#else
#elif
#endif
#ifdef
#ifndef
#undef
#line
#pragma
由上述指令可以看出,每个预处理指令均带有符号"#"。下面只介绍一些常用指令。
1.#define指令
#define指令是一个宏定义指令,定义的一般形式是:
#define 宏替换名字符串(或数值)
由#define指令定义后,在程序中每次遇到该宏替换名时就用所定义的字符串(或数值)代替它。
例如: 可用下面语句定义TRUE表示数值1, FALSE表示0。
#define TRUE 1
#define FALSE 0
一旦在源程序中使用了TRUE和FALSE,编译时会自动的用1和0代替。
注意:
1.在宏定义语名后没有";"
2.在Turbo C程序中习惯上用大写字符作为宏替换名,而且常放在程序开头。
3.宏定义还有一个特点, 就是宏替换名可以带有形式参数,在程序中用到时,实际参数会代替这些形式参数。
例如:
#define MAX(x, y) (x>y)?x:y
main()
{
int i=10, j=15;
printf("The Maxmum is %d", MAX(i, j);
}
上例宏定义语句的含义是用宏替换名MAX(x,y)代替x,y中较大者,同样也可定义:
#define MIN(x,y) (x<y)?x:y
表示用宏替换名MIN(x,y)代替x,y中较小者。
2.#error指令
该指令用于程序的调试,当编译中遇到#error指令就停止编译。其一般形式为:
#error 出错信息
出错信息不加引号,当编译器遇到这个指令时,显示下列信息并停止编译。
Fatal: filename linename error directive
3.#include 指令
#include 指令的作用是指示编译器将该指令所指出的另一个源文件嵌入#include指令所在的程序中,文件应使用双引号或尖括号括起来。Turbo C库函数的头文件一般用#include指令在程序开关说明。
例如:
#include <stdio.h>
程序也允许嵌入其它文件,例如:
main()
{
#include <help.c>
}
其中help.c为另一个文件, 内容可为
printf("Glad to meet you here!");
上例编译时将按集成开发环境的Options/Directories/Include directories中指定的包含文件路径查找被嵌入文件。

4.#if、#else、#endif指令
#if、#els和#endif指令为条件编择指令,它的一般形式为:
#if 常数表达式
语句段;
#else
语句段;
#endif
上述结构的含义是:若#if指令后的常数表达式为真,则编译#if到#else 之间的程序段;否则编译#else到#endif之间的程序段。
例如:
#define MAX 200
main()
{
#if MAX>999
printf("compiled for bigger\n");
#else
printf("compiled for small\n");
#endif
}

5.#undef指令
#undef指令用来删除事先定义的宏定义,其一般形式为:
#undef 宏替换名
例如:
#define TRUE 1
...
#undef TURE
#undef主要用来使宏替换名只限定在需要使用它们的程序段中。

时间: 2025-01-26 14:02:04

C语言基础教程(四)指针、结构、联合和枚举(19)的相关文章

C++基础教程(四)——指针(3)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P41--P45 2.5.2 // Description : 指针数组和指向数组的指针以及字符指针 //===================================================== #include <iostre

C++基础教程(六)——指针(1)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P35--P37 2.5.1 // Description : 指针 // Tips : // int *P ---------> p是一个指向int型变量的指针 // char *c---------> c是一个指向char型变量的指针

C++基础教程(五)——指针(2)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P38--P43 2.5.2 // Description : 指针和数组 // Tips : // 在C++中,数组的元素可以用下标表示,也可以用指针表示. // 但是最好是用指针表示,因为指针表示要比下标表示处理起来要快. // 所以在C++中尽量

C 语言基础教程(我的C之旅开始了)[八]_C 语言

19. 基本数据类型:复数类型和虚数类型 C99 新增了复数类型(_Complex)和虚数类型(_Imaginary).简单来说,C99 提供了三种复数类型:float _Complex,double _Complex,和 long double _Complex.对于 float _Complex 类型的变量来说,它包含两个 float 类型的值,一个用于表示复数的实部(real part),另一个用于表示虚部(imaginary part).类似地,double _Complex 包含两个

易语言基础教程之制作简易浏览器_易语言

方法/步骤 首先打开易语言: 点击--工具--支持库配置--全选--确认 之后点击属性--拉宽 之后点击标题输入测试浏览器 拉一个编辑框和按钮最后一个超文本浏览框(自己找) 之后双击按钮输入代码: .版本 2 .支持库 HtmlView .子程序 _按钮1_被单击 超文本浏览框1.地址 = 编辑框1.内容 按F5测试,好的行了 注意事项 编辑框要输入网址,不能输入其他的OK. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜

C语言基础教程(四)指针、结构、联合和枚举(1)

本节专门对第二节曾讲述过的指针作一详述.并介绍Turbo C新的数据类型:结构.联合和枚举,其中结构和联合是以前讲过的五种基本数据类型(整型.浮点型.字符型.指针型和无值型)的组合.枚举是一个被命名为整型常数的集合.最后对类型说明(typedef)和预处理指令作一阐述. 1. 指针(point) 学习Turbo C语言,如果你不能用指针编写有效.正确和灵活的程序,可以认为你没有学好C语言.指针.地址.数组及其相互关系是C语言中最有特色的部分.规范地使用指针, 可以使程序达到简单明了,因此,我们不

C语言基础教程(四)指针、结构、联合和枚举(18)

类型说明类型说明的格式为:typedef 类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型.这里类型是Turbo C许可的任何一种数据类型.定义名表示这个类型的新名字. 例如: 用下面语句定义整型数的新名字: typedef int SIGNED_INT; 使用说明后,SIGNED_INT就成为int的同义词了,此时可以用SIGNED_INT定义整型变量.例如:SIGNED_INT i, j;(与int i, j等效). 但long SIGNED_INT i, j;

C语言基础教程(四)指针、结构、联合和枚举(12)

二.结构指针结构指针是指向结构的指针.它由一个加在结构变量名前的"*" 操作符来定义,例如用前面已说明的结构定义一个结构指针如下: struct string{ char name[8]; char sex[2]; int age; char addr[40]; }*student; 也可省略结构指针名只作结构说明,然后再用下面的语句定义结构指针. struct string *student; 使用结构指针对结构成员的访问,与结构变量对结构成员的访问在表达方式上有所不同.结构指针对结

C语言基础教程(四)指针、结构、联合和枚举(11)

3.结构数组和结构指针结构是一种新的数据类型,同样可以有结构数组和结构指针.一.结构数组结构数组就是具有相同结构类型的变量集合.假如要定义一个班级40个同学的姓名.性别.年龄和住址,可以定义成一个结构数组.如下所示:struct{ char name[8]; char sex[2]; int age; char addr[40]; }student[40]; 也可定义为: struct string{ char name[8]; char sex[2]; int age; char addr[4

易语言基础教程之循环程序结构_易语言

曾经听说过一句话:"计算机就擅长做的工作就是'循环'!".的确循环执行在语言中扮演着极为重要的角色,利用循环我们可以实现更复杂.重复性的工作.易语言对于循环程序结构提供四种形式,下面就一起来了解一下易语言中循环结构的具体使用方法. 方法/步骤 在此小编将以实例的方法与大家分享易语言中循环结构的具体使用方法:先创建一个Windows空白窗口,绘制如图所示的人机界面. 接下来为"计算"按钮添加"被单击"事件. 我们先利用"判断循环"