20091|57

1668

帖子

0

TA的资源

裸片初长成(初级)

楼主
 

C语言降龙十八掌——第四掌 吃鸡蛋应该打碎哪头? [复制链接]

这是一个纯粹的工程问题。教科书上没有讲,如同吃鸡蛋先打碎哪头一样,学校是不会教的。

有这样一个联合体数据结构:
typedef unsigned long uint32;
typedef unsigned short uint16;
typedef unsigned char uint8;

typedef union foo_u_ {
    uint32 member1;
    uint16 member2[2];
    uint8 member3[4];
} foo_u;

那么,当这个联合体中,member1的值为0x12345678的时候,member2[0]和member3[0]各为多少呢?
此帖出自编程基础论坛

最新回复

版主见解很深刻,一语道破天机啊。  详情 回复 发表于 2012-6-26 16:33
点赞 关注
 

回复
举报

515

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
大小端模式,在嵌入式系统的软件设计是需要多注意的!!
此帖出自编程基础论坛
 
 
 

回复

802

帖子

23

TA的资源

五彩晶圆(中级)

板凳
 

还真是吃过这样的亏,
据说有的系统是可以设置大小端模式的,??
此帖出自编程基础论坛
 
个人签名生活在激情中 ... 希望 哈哈

https://home.eeworld.com.cn/?80086
 
 

回复

2400

帖子

0

TA的资源

裸片初长成(高级)

4
 
可以设置大小端模式的,??
此帖出自编程基础论坛
 
 
 

回复

1668

帖子

0

TA的资源

裸片初长成(初级)

5
 

回复 4楼 zhjzh72_2004 的帖子

MIPS处理器的大小端模式是可以设定的。一般为Big Endian,和网络序一致。
x86处理器则是小端模式。
此帖出自编程基础论坛
 
 
 

回复

209

帖子

0

TA的资源

一粒金砂(高级)

6
 
看不懂,路过,我级别太低,哎,好好学
此帖出自编程基础论坛
 
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

7
 

这次这个题我能看懂,但是答案吗~

平时用指针和共用体不多,学习来了。
此帖出自编程基础论坛
 
 
 

回复

1668

帖子

0

TA的资源

裸片初长成(初级)

8
 

回复 7楼 sjl2001 的帖子

这个问题我在x86、MIPS和SPARC的处理器上都做过实验。大家也可以用计算机做个实验,在x86上(就是你运行Windows的电脑)和ARM上(如手头的开发板)做个实验,把数据从串口printf出来看看。
此帖出自编程基础论坛
 
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

9
 

pic是从后面数的。

果然啊,跟我想的不一样。
此帖出自编程基础论坛

赞赏

1

查看全部赞赏

 
 
 

回复

1668

帖子

0

TA的资源

裸片初长成(初级)

10
 

回复 9楼 sjl2001 的帖子

多谢!也请各位多用手头的非8位机多做实验, 如MSP430,TI的DSP,EPSON的微控制器?
条件所限我手头只有x86,MIPS(一个高端路由器设备)、SPARC(一个SUN服务器帐号)。大家可以多试试各种处理器。
此帖出自编程基础论坛
 
 
 

回复

148

帖子

3

TA的资源

五彩晶圆(初级)

11
 
哇,不懂啊。
此帖出自编程基础论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

12
 
没涉及过,看不懂,要好好学啊
此帖出自编程基础论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

13
 
在网上经常见到--帅云霓--这个名字,尤其在弯曲评论上!不知道是不是同一个人!
此帖出自编程基础论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

14
 

这些都是一些很细的东西

学校课堂上不讲的东西多了,有很多讲了也是点到为止,一句带过,不是非常认真听课的学生可能根本就不会留意到:L
其实这些都是C语言最基础的基础,堪比武侠小说所说的“内功”
非常感谢楼主把这些东西提出来给大家来个“修炼内功”的机会
此帖出自编程基础论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

15
 

头像是楼主本人吗

笑容好灿烂,长相很耐看
补充一下,印象中看到某些ARM也支持大小端自由设置
总之大家在遇到问题的时候多长个心眼,多多查看数据手册和编译器手册就可以解决大多数属于编程语言方面的问题
此帖出自编程基础论坛
 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

16
 
这种情况应该尽量用指针吧。这样即时不能设置大小端也可从软件避免。另外对于C来说边界检查也是必要的。尽量不要使用这样的方式。
此帖出自编程基础论坛
 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

17
 

回复 15楼 tywood 的帖子

原帖由 tywood 于 2009-11-25 10:17 发表
笑容好灿烂,长相很耐看
补充一下,印象中看到某些ARM也支持大小端自由设置
总之大家在遇到问题的时候多长个心眼,多多查看数据手册和编译器手册就可以解决大多数属于编程语言方面的问题:c ...


突然发现你很像郭芙蓉哎!!!
此帖出自编程基础论坛
 
 
 

回复

1668

帖子

0

TA的资源

裸片初长成(初级)

18
 

回复 16楼 leang521 的帖子

这个问题来源于我改过的一个Bug,当然大大简化了周边条件,直取问题的本质。
此帖出自编程基础论坛
 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

19
 

回复 18楼 richiefang 的帖子

C的特点就是可移植性。那么我们在软件编写的时候就应该考虑到这个问题。不同的编译器对同一句C的解释问题(对了,你估计没试过在X86上用不同编译器解释上面那段代码结果不同,我记得我们讲编译原理的时候详细讨论过这个问题),那么在代码编写的时候就要十分留意这种可能的错误。比如在公式中多用括号避免左右问题,在数列中多用指针避免大小端问题。
此帖出自编程基础论坛
 
 
 

回复

1668

帖子

0

TA的资源

裸片初长成(初级)

20
 
原帖由 leang521 于 2009-11-25 11:56 发表
C的特点就是可移植性。那么我们在软件编写的时候就应该考虑到这个问题。不同的编译器对同一句C的解释问题(对了,你估计没试过在X86上用不同编译器解释上面那段代码结果不同,我记得我们讲编译原理的时候详细讨论过这 ...

当然,用Borland C++3.1和Visual C++的结果也不一样,因为一个16位一个32位。我们这里讨论的时候统一假设是32位系统和编译器。
长相这种八卦话题在技术版面讨论是不是不大好啊?
此帖出自编程基础论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表