首页 > 其他分享 >宏定义与共用体

宏定义与共用体

时间:2023-03-03 15:12:02浏览次数:95  
标签:定义 int u1 union 共用 define

宏定义要注意的问题:

1、宏定义一般是在函数的外面
2、宏定义必须要先定义,再使用宏。如果先使用就会编译报错。
3、宏定义中宏名一般用大写。不是语法规定的,是一般约定俗成的。

宏定义的格式

define N 321

为什么使用宏定义?

  • 在C语言中,一般使用常数的时候,都不是直接使用,而是先把该常数定义为一个宏,然后在程序中使用该宏名。这样做的好处是,等我们需要修改这个常数时,只需要在宏定义处修改一次即可。而不用到代码中到处去寻找,看哪里都用过该常数。

示例:

#include <stdio.h>

#define N (10)			// 宏定义

#define M (10 + N)

#define PI	(3.14)

#define S(r) (PI * (r) * (r))		// 计算园面积的宏
#define L(r) (2 * PI * (r))			// 计算圆的周长的宏

// 题目,使用宏定义定义一个宏,表示一年中的秒数
#define SEC_PER_YEAR (365 * 24 * 60 * 60)UL


int main(void)
{
	int a[N] = {1, 2, 3};
	int b[N];
	int c[N];
	
	
	printf("sizeof(c) = %d.\n", sizeof(c));

/*
	int a;
	
	a = 123;
	a = N;
	
	
	printf("a = %d.\n", a);
*/
	
	return 0;
}

共用体(union,联合,联合体)

  • 共用体union在定义和使用形式上,和结构体struct很相似。但是两种数据结构是完全不同的两类东西。
  • 结构体,是对多个数据的组合与封装。
  • 共用体,共用体中只有一个东西,只是它被好几个名字(和类型)共用。
#include <stdio.h>


// 定义共用体类型
union MyUnion
{
	int a;
	char b;
	float c;
};



int main(void)
{
	union MyUnion u1;		// 使用自定义的union类型来定义变量
	
	u1.a = 12933;
	
	printf("u1.a = %d, u1.b = %d.\n", u1.a, u1.b);
	
	return 0;
}

标签:定义,int,u1,union,共用,define
From: https://www.cnblogs.com/zggb/p/17175695.html

相关文章

  • js自定义事件
    触发自定义事件(只有这一种)dom.dispatchEvent(eventObject)创建自定义事件方法方法一(已被W3C标准弃用,浏览还支持)dom.createEvent()dom.initEvent(eventName,ca......
  • JetBrains系列(IDEA,Clion等) 自定义注释设置
    为了方便对方法的功能描述,可以设置自定义注释模板。效果:/***@FunctionNamecalculatePrice*@CreateTime2023/3/311:01*@Authorthink*TODO*/模板:可以......
  • RL 基础:如何搭建自定义 gym 环境
    需实现的方法:__init__(self):需定义action_space和observation_space,使用space.Box之类来表示(fromgymimportspaces)。step(self,action):返回observation......
  • delphi 自定义cxGrid的导航面板
    效果图  面板设置:1.把导航面板显示出来:Navigator.visible:=true 2.在Navigator-Buttons下设置自己需要显示或者隐藏的按钮  3.添加自定义按钮  双......
  • 6.封装axios定义ajax请求函数模块与优化统一处理异常
    安装axios包:【版本:1.3.3】npminstallaxios初级版本api/ajax.js文件内容/*能发送异步ajax请求的函数模块封装axios库函数的返回值是promise对象:.......
  • 苹果手机如何自定义手机铃声和闹钟铃声?
    受够了Iphone自带铃声,需要自定义手机铃声或者闹钟铃声的指导文章。本文以QQ音乐为例设置,其它音乐软件设置类似。设置铃声选择喜欢的歌曲,在更多设置中找到“设置铃声”,......
  • echarts自定义展示tooltip功能
    效果如图:      //得分趋势图rollCoolW021Option:{tooltip:{show:true,trigger:'axis',axisPointer......
  • uniapp 自定义 picker
    前言我们在开发的过程中经常会遇到现有插件无法满足需求的情况,毕竟不是组件库不能满足项目所有需求,这时就需要我们自己去构建组件。写这篇博文也是记录我平时开发的,以后......
  • 自定义方法
    Array自带方法的实现Array.flatconstarray1=[1,2,3,4,[5,6],[7,[8,9]]];functionflat(list){returnlist.reduce((pre,next)=>pre.concat(Array.i......
  • van-picker 自定义label
    <van-popupv-model="companyShow"position="bottom":style="{height:'60%'}"><van-pickertitle="职务"show-......