正在加载图片...
94条件编译 预处理程序提供了条件编译的功能。可以按不同的条件去编译不同的程序部分,因而产 生不同的目标代码文件。这对于程序的移植和调试是很有用的。 条件编译有三种形式,下面分别介绍: 1.第一种形式: # ifdef标识符 程序段1 #else 程序段2 fendi 它的功能是,如果标识符已被# define命令定义过则对程序段1进行编译;否则对 程序段2进行编译。如果没有程序段2(它为空),本格式中的#else可以没有,即可以写 为 # ifdef标识符 程序段 #endif 【例9.12】 #define num ok struct st int num; char sname char sex float score ps=(struct stu*)malloc(sizeof(struct stu)) ps->num=102 ps->name="Zhang ping ps>sex s->score=62. 5 #ifdef NUM printf ("Number%d\nScore=%f\n", ps->num, ps->score) else printf("Name%s\nSex=%c\n", ps->name, ps->sex) free(ps) 包 由于在程序的第16行插入了条件编译预处理命令,因此要根据NM是否被定义过来决定 编译那一个 printf语句。而在程序的第一行已对NM作过宏定义,因此应对第一个 printf9.4 条件编译 预处理程序提供了条件编译的功能。可以按不同的条件去编译不同的程序部分,因而产 生不同的目标代码文件。这对于程序的移植和调试是很有用的。 条件编译有三种形式,下面分别介绍: 1. 第一种形式: #ifdef 标识符 程序段 1 #else 程序段 2 #endif 它的功能是,如果标识符已被 #define 命令定义过则对程序段 1 进行编译;否则对 程序段 2 进行编译。如果没有程序段 2(它为空),本格式中的#else 可以没有,即可以写 为: #ifdef 标识符 程序段 #endif 【例 9.12】 #define NUM ok main(){ struct stu { int num; char *name; char sex; float score; } *ps; ps=(struct stu*)malloc(sizeof(struct stu)); ps->num=102; ps->name="Zhang ping"; ps->sex='M'; ps->score=62.5; #ifdef NUM printf("Number=%d\nScore=%f\n",ps->num,ps->score); #else printf("Name=%s\nSex=%c\n",ps->name,ps->sex); #endif free(ps); } 由于在程序的第 16 行插入了条件编译预处理命令,因此要根据 NUM 是否被定义过来决定 编译那一个 printf 语句。而在程序的第一行已对 NUM 作过宏定义,因此应对第一个 printf
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有