c高级day5(9.12)宏和Makefile

1.宏定义

#include<stdio.h>
#include<head.h>
#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<stdio.h>
#include<head.h>
#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<stdio.h>
#include<head.h>
#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 <stdio.h>
//定义了一个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:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值