C语言基本教程(四)指针、布局、连系和列举(19)
当前位置:以往代写 > C/C++ 教程 >C语言基本教程(四)指针、布局、连系和列举(19)
2019-06-13

C语言基本教程(四)指针、布局、连系和列举(19)

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主要用来使宏替换名只限定在需要利用它们的措施段中。

    关键字:

在线提交作业