一、自定义类型
自定义类型
typedef用新的类型名代替原有的类型名
例如
//指定用u8为类型名,作用与unsigned char相同
typedef unsigned char u8;
u8 x;
//指定用Integer为类型名,作用与int相同。
typedef int Integer;
//指定用Real为类型名,作用与float相同。
typedef float Real;
#include <stdio.h>
int main()
{
//typedef用新的类型名代替原有的类型名
typedef unsigned char u8;
u8 x = 'a';
printf("x=%c",x);
return 0;
}
二、宏定义
宏定义
#define WEIGHT 12
int x;
x = WEIGHT;
printf(“x=%d\n”,x);
宏函数,在定义时不需要指明返回类型及返回值
宏函数中最后一个表达式的值,即为宏函数的返回值。
该值的类型,即为宏函数的返回类型。
#include <stdio.h>
#define WEIGHT 12
#define max(x,y)x>y?x:y;
int main()
{
int x;
x = WEIGHT;
printf("x=%d\n",x);
x = max(10,20);
printf("x=%d\n",x);
return 0;
}
三、枚举
批量定义enum
enum 枚举名 {枚举元素1,枚举元素2,……};
示例
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
枚举变量的定义三种:
1、先定义枚举类型,再定义枚举变量
enum DAY{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
2、定义枚举类型的同时定义枚举变量
enum DAY{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
3、省略枚举名称,直接定义枚举变量
enum{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
**注意:**第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。
#include <stdio.h>
//1、先定义枚举类型,再定义枚举变量
// enum DAY{
// MON=1, TUE, WED, THU, FRI, SAT, SUN
// };
// enum DAY day;
//2、定义枚举类型的同时定义枚举变量
// enum DAY{
// MON=1, TUE, WED, THU, FRI, SAT, SUN
// }day;
//3、省略枚举名称,直接定义枚举变量
enum{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
int main()
{
scanf("%d",&day);
switch(day)
{
case 1:printf("星期一");break;
case 2:printf("星期二");break;
case 3:printf("星期三");break;
case 4:printf("星期四");break;
case 5:printf("星期五");break;
case 6:printf("星期六");break;
case 7:printf("星期天");break;
default :printf("输入无效!");
}
return 0;
}