c高级day5(9.12)宏和Makefile

1.宏定义

#include
#include
#define unit32_t unsigned int
#define TYPE(a,b) a##b
int main(int argc, const char *argv[])
{
	unit32_t i;
	TYPE(unit,32_t) j;
	return 0;
} 

2.宏函数与有参宏

#include
#include
#define MAX(a,b) {if(a>b)\
				  printf("%d\n",a);\
				  else\
				  printf("%d\n",b);\
				  }
#define Max(a,b) ({ int ret;\
					if(a>b)\
					ret=a;\
					else;\
					ret=b;\
					ret;\
					10000;\
					})

int main(int argc, const char *argv[])
{
	MAX(10,20);
	printf("%d\n",Max(20,30));//输出为10000,因为函数最后一句语句为返回值
	return 0;
} 

3.宏函数与有参宏实现两数相加

#include
#include
#define Sum(a,b) {printf("%d\n",a+b);}
#define SUM(a,b) ({a+b;})
int main(int argc, const char *argv[])
{
	Sum(10,20);
	int sum=SUM(100,50);
	printf("%d\n",sum);
	return 0;
} 

4.

1、假设屋内有三个LED等,分别是LED_1,LED_2,LED_3,

每一个led等分别有两种状态,LED_ON,LED_OFF,

设计程序模拟,灯的初始化,和控制灯状态的函数

(要求:分别初始化三盏灯,每个灯都有两种状态)

写两个函数:

1、led_init(LED ) ---->初始化LED灯的函数,参数是枚举类型

2、led_con(LED,LED_C) ------>控制灯状态的函数,两个参数,分别是LED灯,LED_C灯的状态

#include 
//定义了一个led灯的枚举类型
typedef enum led
{
	LED_1=1,
	LED_2,
	LED_3,
}LED;

typedef enum led_c
{
	LED_OFF,
	LED_ON,
}LED_C;

//初始化LED灯的函数
void led_init(LED led)
{
	switch(led)
	{
	case LED_1:   //直接使用枚举项对枚举变量判断
		printf("初始化了LED_1灯\n");
		break;
	case LED_2:
		printf("初始化了LED_2灯\n");
		break;
	case LED_3:
		printf("初始化了LED_3灯\n");
		break;
	}
}
//控制灯开关的函数
void led_con(LED led,LED_C c)
{
	switch(led)
	{
	case LED_1:   //直接使用枚举项对枚举变量判断
		switch(c)
		{
		case LED_ON:
			printf("打开了LED_1灯\n");
			break;
		case LED_OFF:
			printf("关闭了LED_1灯\n");
			break;

		}
		break;
	case LED_2:
		switch(c)
		{
		case LED_ON:
			printf("打开了LED_2灯\n");
			break;
		case LED_OFF:
			printf("关闭了LED_2灯\n");
			break;

		}
		break;

	case LED_3:
		switch(c)
		{
		case LED_ON:
			printf("打开了LED_3灯\n");
			break;
		case LED_OFF:
			printf("关闭了LED_3灯\n");
			break;

		}
	}
}
int main(int argc, const char *argv[])
{
	LED led = LED_2;

	//调用初始化函数时,直接使用枚举项进行传参
	led_init(LED_1);
	led_init(LED_2);
	led_init(LED_3);

	//调用控制函数时,通过枚举变量传参,led是哪一个枚举项,就控制哪一盏灯的状态
	led_con(led,LED_ON);
	led_con(led,LED_OFF);
	return 0;
}

XMind:

你可能感兴趣的:(xmind,c高级,shell脚本,bash)