c高级day5(9.12)宏和Makefile

news2024/10/5 21:17:16

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:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1004644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计师_备考笔记

考试介绍及考点分布情况 考试要求&#xff1a; &#xff08;1&#xff09;掌握数据表示、算术和逻辑运算&#xff1b; &#xff08;2&#xff09;掌握相关的应用数学、离散数学的基础知识&#xff1b; &#xff08;3&#xff09;掌握计算机体系结构以及各主要部件的性能和基…

【c++5道练习题】②

目录 一、验证回文串 二、字符串相加 三、杨辉三角 四、最小栈 五、栈的压入、弹出序列 一、验证回文串 思路&#xff1a; 1、注&#xff1a;for(auto ch : s) -》指将s中每一个字符赋值给ch&#xff0c;ch的改变并不会影响s 但写为for(auto& ch : s) -》指将ch是s中…

【部署】Nginx部署前后端JeecgBoot-Vue3

部署运维 前言前台部署配置服务器地址配置路由访问规则配置后端接口路由访问规则Linux 宝塔傻瓜式部署前台项目 Nginx 命令 前言 前面有提到使用 Window 的 IIS 管理器来部署打包后的前端项目&#xff0c;点击【原文】 跳转到前篇文章。感觉甲方爸爸的描述&#xff0c;似乎有些…

Smartbi吴华夫:后疫情时代,BI发展趋势的观察与应对

沿着旧地图找不到新大陆&#xff0c;“基于指标体系的可视化分析和增强分析”成为BI发展新阶段。Smartbi V11系列新品与时俱进&#xff0c;以指标为核心&#xff0c;同时融合BI应用&#xff0c;赋能管理者和业务&#xff0c;成为引领数字化运营的新航标&#xff01; ——思迈特…

Zabbix监控平台环境部署

Zabbix监控平台环境部署 1.Linux环境部署 hostnamectl set-hostname zabbix_server #修改主机名方便查看 hostnamectl set-hostname zabbix_agent ​ systemctl stop firewalld #关闭防火墙 systemctl disable firewalld #关闭防火墙开机自启 setenforce 0 #关闭SElinu…

微信怎么给自己发消息

前段时间看到一份数据调查&#xff0c;说是到目前为止&#xff0c;全球使用微信的用户已达到10亿多人次&#xff0c;天啊&#xff0c;多么强大的用户群体&#xff01; 这么多人喜欢使用微信&#xff0c;相信大家都知道&#xff0c;微信里面有一个特俗功能&#xff0c;可以自己…

逆向-attack之改写函数的返回地址

#include <stdio.h> #include <stdlib.h> #include <unistd.h> /* * 改写input()函数的返回地址&#xff0c;从而使得breakout()函数在没有直接调用的情况下获得执行 */ void breakout() { puts("Welcome. Have a shell..."); system(…

argparse--命令行参数解析库

文章目录 位置参数help ->描述信息type -> 被转换的类型 可选参数action ->动作基本类型 (store_true)短选项 结合位置参数和可选参数choiceaction ->动作基本类型 (count)default -> 默认值 argparse模块使编写用户友好的命令行变得容易 接口。程序定义了它需要…

6.网络编程套接字(下)

文章目录 4.TCP流套接字编程4.1ServerSocket API4.2Socket API4.3TCP中的长短连接4.4示例一&#xff1a;一发一收&#xff08;长连接&#xff09;4.4.1TCP服务端4.4.2TCP客户端 4.5示例二&#xff1a;请求响应&#xff08;短连接&#xff09;4.5.1TCP服务端4.5.2TCP客户端 4.6再…

32 WEB漏洞-文件操作之文件下载读取全解

目录 介绍利用获取数据库配置文件文件名&#xff0c;参数值&#xff0c;目录符号 涉及案例:Pikachu-文件下载测试-参数Zdns-文件下载真实测试-功能点小米路由器-文件读取真实测试-漏洞RoarCTF2019-文件读取真题复现-比赛百度杯2017二月-Zone真题复现-比赛拓展 下载和读取都差不…

开源大模型ChatGLM2-6B 1. 租一台GPU服务器测试下

0. 环境 租用了1台GPU服务器&#xff0c;系统 ubuntu20&#xff0c;GeForce RTX 3090 24G。过程略。本人测试了ai-galaxy的&#xff0c;今天发现网友也有推荐autodl的。 &#xff08;GPU服务器已经关闭&#xff0c;因此这些信息已经失效&#xff09; SSH地址&#xff1a;* 端…

循环购模式:一种新型的电商模式,让你的生意更轻松

你是否想过&#xff0c;你的商品能够以一种更高效、更环保、更有趣的方式销售给顾客&#xff1f;你是否想过&#xff0c;你的顾客能够以一种更低成本、更高回报、更多互动的方式享受你的商品&#xff1f;如果你的答案是肯定的&#xff0c;那么你一定要了解一下循环购模式。 循环…

TestFlight填写测试信息Beta版App审核信息报错确保联系人电话号码只包含数字,然后重试。

在TestFlight填写测试信息时 Beta版App审核信息报错确保联系人电话号码只包含数字&#xff0c;然后重试。 看到这个报错一脸懵逼&#xff0c;我明明电话号码填写就是纯数字啊。更换了浏览器也是无效&#xff0c;后面发现这个错误提示描述有问题&#xff0c;并不是要求只包含数字…

R语言并行计算提高速度丨parallel包和foreach包

并行计算提高R语言速度 今天与大家分享的是R语言中的并行计算的内容&#xff0c;将探讨如何使用parallel和foreach包在R中进行并行计算&#xff0c;以及在不同情况下提高计算效率的方法。 目标&#xff1a;让计算等待时间缩短&#xff01; 1. 什么是并行计算&#xff1f; 并行计…

认识网线上的各种参数标号

最近工作需要&#xff0c;接触了很多不同类型的网线&#xff0c;为了能够区分不同型号的网线&#xff0c;特意做一篇笔记用来学习&#xff0c;如有记录有误之处&#xff0c;欢迎大家指正~初步认识网线 常用的网络电缆有三种&#xff1a;双绞线、同轴电缆和光纤电缆&#xff08…

Vue3、Vite使用 html2canvas 把Html生成canvas转成图片并保存,以及填坑记录

这两天接到新需求就是生成海报分享&#xff0c;生成的格式虽然是一样的但是自己一点点画显然是不符合我摸鱼人的性格&#xff0c;就找到了html2canvas插件&#xff0c;开始动工。 安装 npm install html2canvas --save文档 options 的参数都在里面按照自己需求使用 https://a…

Python3.10 IDLE更换主题

前言 自定义主题网上有很多&#xff0c;3.10IDLE的UI有一些新的东西&#xff0c;直接扣过来会有些地方覆盖不到&#xff0c;需要自己测试着添几行配置&#xff0c;以下做个记录。 配置文件路径 Python安装目录下的Lib\idlelib\config-highlight.def。如果是默认安装&#xf…

2023年7月京东平板电脑行业品牌销售排行榜(京东销售数据分析)

鲸参谋监测的京东平台7月份平板电脑市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年7月份&#xff0c;京东平台上平板电脑的销量为68万&#xff0c;同比增长超过37%&#xff1b;销售额为22亿&#xff0c;同比增长约54%。从价格上看…

win11本地连接没了怎么办

很多用户在使用win11系统时发现自己的网络连接没有了&#xff0c;遇到这种情况的话&#xff0c;我们应该怎么处理呢&#xff1f;我们可以尝试打开网络图标&#xff0c;下面就是小编整理出的教程&#xff0c;大家一起看看吧。 win11本地连接没了怎么办 方法一&#xff1a; 1、…

Python基于Flask的招聘信息爬取,招聘岗位分析、招聘可视化系统

Python基于Flask招聘信息可视化系统 一、介绍 今天为大家带来的是Python基于Flask的招聘信息爬取&#xff0c;招聘岗位分析、招聘可视化系统。视频演示地址&#xff1a;https://www.bilibili.com/video/BV1Tp4y1A7nW/ Python基于flask的招聘数据可视化&#xff0c;招聘岗位分…