注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
鸡蛋壳杂货铺的个人空间
https://home.eeworld.com.cn/space-uid-1016722.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
共用体、结构体的巧妙使用
已有 406 次阅读
2018-8-27 10:09
|
个人分类:
C语言技巧
///////////////////////////////////////////
//
共用体中嵌套定义结构体
///////////////////////////////////////////
union
_AD_Union_RESULT_
{
struct
_AD_Struct_RESULT_
{
unsigned char
AD_RESULT_LO;
unsigned char
AD_RESULT_HI;
}AD_SHORT_BUF;
unsigned long
AD_RESULT;
}AD_LONG_BUF;
///////////////////////////////////////////
这段代码的意思是:定义一个共用体,这个共用体里面有两个变量,第一个变量是用结构体声明的一个变量:
AD_SHORT_BUF
(包含
8*BIT
:
AD_RESULT_HI
+8*BIT
:
AD_RESULT_LO
);第二个变量:
16*BIT
:
AD_RESULT
;
其中这个结构体包含:8*BIT
:
AD_RESULT_HI
和
8*BIT
:
AD_RESULT_LO
,然后,编译器会给这两个寄存器分配
RAM
地址,比如可能分配:
AD_RESULT_HI
:
0x32
;
AD_RESULT_LO
:
0x33
;
或者
AD_RESULT_LO
:
0x32
;
AD_RESULT_HI
:
0x33
;发现这两种分配的区别,知道编译器分配地址的规则;
然后第二个变量是一个16*BIT
:
AD_RESULT
;
地址就是第一个结构体变量编译器给的
RAM
地址;
作用就是实现:16*BIT
:
AD_RESULT=
8*BIT
:
AD_RESULT_HI+
8*BIT
:
AD_RESULT_LO
;
本文来自论坛,点击查看完整帖子内容。
收藏
邀请
举报
全部
作者的其他最新日志
•
switch用法
评论 (
0
个评论)
涂鸦板
您需要登录后才可以评论
登录
|
注册
评论
鸡蛋壳杂货铺
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
2000元门票免费领! EEWorld网友专属福利
一种基于神经网络的前所未有的方法可模拟量子系统
【下载】ST数字电源指南
历年珠海航展亮点回顾
拒绝束缚,释放工业4.0的“无线”可能!
处理复杂工作效率倍增 AMD 锐龙5 3600X处理器测试
新增数据手册
WS20.5W5K6205TJ
MHCI05018-100M-R8A
Q7.0-SS4-12-20/150-T3
MF5042.201%100PPMB
4310T-102-4751BC
7103J61CRE21
热搜器件
2894773
MAX11800ETC T
1808J2500121KCT
RCWE0805R330JKEA
MDP1401180RGE04
KE-2N10-36
推荐下载
支持安卓 免驱动视频采集卡
《变压器》期刊 1994年1-12期.part2
computer architecture
万年历时钟秒表
FDS9431A
《C++ GUI Programming with Qt 3》
推荐关注
【Follow me第二季第4期】任务二 通过串口打印六轴原始数据
电容和电阻与晶振如何搭配运作
GB/T 17626.6-2008 电磁兼容 试验和测量技术 射频场感应的传导骚扰抗扰度
OpenHarmony属性信息怎么修改?触觉智能RK3566鸿蒙开发板来演示
【读书】《RISC-V 体系结构编程与实践(第2版)》-- 结构学习
【新闻】触觉智能加入GIIC全球智慧物联网联盟,庆祝第一届理事会第三次会议圆满召开