c语言枚举变量作为函数参数,C语言enum枚举类型、struct结构体类型、union共用体类型用法总结...

近日在学习stm32的过程中遇到一些问题,特重新学习了一下C语言关于枚举、结构体、共用体类型的用法,现总结如下>>>

目录

·C枚举类型

基本定义

在stm32中的应用

·C结构体类型

基本定义

初始化

作为函数参数

在stm32中的应用

·C共用体类型

基本定义

内存空间

共用

·C枚举类型

基本定义

首先,在谈enum的用法之前,要了解const的作用,我们知道const是一种定义常量的数据类型,即被定义的量不可改变数值 ,通常是用作为一些数值冠上一个名字,使得代码可读性更好,比如

const int true = 1;

const int false = 0;

switch(result)

{

case true: /* 写入对应函数*/

break;

case false: /*写入对应函数*/

break;

}

或者也可以用宏定义来给常量取名字,但此时常量并没有数据类型,关于const定义与#define宏定义详细的区别,可戳此处https://blog.csdn.net/just_mccc/article/details/108251183

#define true 1

#define false 0

而如果需要定义的常量数量大且种类繁多,就会显得冗余,代码移植性差,在stm32f10x标准库函数中,有大量不同种类的常量,这时候就需要用到enum枚举类型对常量进行归类。先看一个例子>>>

/*有多种定义形式*/

enum time

{hour, minute = 25, second}now;

enum

{hour, minute = 25, second}now;

enum time

{hour, minute = 25, second};

enum基本用法如上所示,可以有多种形式进行枚举类型定义。time作为枚举类型名字通常并不使用,用的是大括号中的枚举元素,且编译器会将这些元素当作整形常量处理,在数值方面,如果第一个元素没有赋值,会默认为0,后面没有被赋值的元素的数值为前一元素值加1,在取用枚举元素的值时就可以直接使用枚举元素。在赋值方面,枚举元素可以直接赋给int类型变量,但int类型常量不能直接赋给枚举类型变量,需要强制转换才能完成。

printf("The time is %02d : %02d : %02d",

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值