一.什么是宏
宏是代表一些确定的程序语句,它像一个记号。
二.定义宏
#define PI 3.14159
define是定义宏的关键字,PI是宏名(宏名一般采用大写形式),宏名后面紧跟着确定的程序语句。特别值得注意是宏定义
完毕之后不跟分号结束,因为预处理不以分号结束。
当宏定义完毕后程序中就可以使用宏名来代替程序语句。比如在程序中所有出现3.14159的地方都可以用PI来代替。3.14159是最简单的说,还可定义如:
#define LINE for(d;d<40;d++)\
printf("-");//实现打印40个‘—’符号
这种相对复杂的程序语句。我们可以看出该语句中存在一个\,其作用是表示连续多行是属于一个宏定义的。
三.枚举及其定义
宏可以表示一个常量,那么枚举可以代表一组常量。其关键字是——enum 。以下给出一个枚举的定义实例:
enum week {
h,i,j,k,l,m
};//h,i,j,k,l,m是枚举的成员
枚举在c语言中实现为从0开始的整数,这是默认情况。开发者也可以根据自己的想法改变枚举的编码方式,如下:
enum week1 {
a=9,b,c,d1,f,g
};
值得注意的是后续枚举成员的值都是在前面枚举成员的值加一得到。
四.宏和枚举综合实例
#include<stdio.h>
#include<stdlib.h>
int d=0;
#define LINE for(d;d<40;d++)\
printf("-");
enum week {
h,i,j,k,l,m
};
enum week1 {
a=9,b,c,d1,f,g
};
int main(){
enum week day;
enum week1 da;
for(day=h;day<m;day++)
{
printf("今天是星期:%d\n",day);
}
LINE
printf("\n");
for(da=a;da<g;da++)
{
printf("%d\n",da);
}
return 0;
}