记录一个Union和使用指针直接强转读取数据的例子
发布日期:2021-06-30 10:11:22
浏览次数:4
分类:技术文章
本文共 516 字,大约阅读时间需要 1 分钟。
例子为:
#includeunion u{ int a; short b;};int main(){ union u t; t.a=100000; t.b=10; printf("%d %hd,%d,%d\n", t.a, t.b,*(short *)(&t),*(int *)(&t)); printf("%ld %ld,%ld,%ld\n", &(t.a), &(t.b),&t,(&t)); return 0;}
反馈结果为:
32位数据显示:
0000 0000 0000 0001 1000 0110 1010 0000 表示为100000
0000 0000 0000 0000 0000 0000 0000 1010 表示为10
0000 0000 0000 0001 0000 0000 0000 1010 表示为65546
这里可以看出本例子b将a的低位覆盖了,这里要注意union只会从低位覆盖!但是大小端存储是会导致后面的使用指针强转读值产生不一样的结果!这个结果是小端存储。
转载地址:https://islet.blog.csdn.net/article/details/108488396 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月26日 03时34分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SpringBoot_日志组件 logback
2019-04-30
oracle监听动态注册时的实例状态
2019-04-30
oracle动态注册的时间点
2019-04-30
oracle跟踪实例的动态注册过程
2019-04-30
巧用SSH的端口转发功能
2019-04-30
UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY
2019-04-30
Struts2高危漏洞修复方案(S2-016/S2-017)
2019-04-30
oracle相关查询指标
2019-04-30
Linux下用SCP无需输入密码传输文件
2019-04-30
Linux下tar命令exclude选项排除指定文件或目录
2019-04-30
su -c
2019-04-30
linux gzip压缩/解压缩*.gz文件
2019-04-30
linux设置服务器禁止或开启ping包
2019-04-30
linux修改SSH默认22端口的方法
2019-04-30
mysql 设置max_allowed_packet 大小
2019-04-30
perl语言hello world程序
2019-04-30
perl中的特殊字符
2019-04-30
perl替换数组元素
2019-04-30
perl中的特殊变量$[
2019-04-30