原创 学习心得:嵌入式c语言里一种常用的数据结构

2008-10-29 21:33 4394 2 3 分类: MCU/ 嵌入式
以前做飞思卡尔的时候总是很想知道c语言里是怎么做到位寻址的PORTA_BIT0为什么就代表A口的最低位了呢?于是就看头文件。里面关于这方面的描述总有一些一个共用体里定义了一个成员和一个结构体这种形式。但是一直没看懂是什么意思。今天终于在看一个程序的时候领悟了。记录一下,见笑了!比如
union                                 
{
 uint8 port;
 struct
 {
  byte BIT0          :1;
  byte BIT1          :1;
  byte BIT2          :1;
  byte BIT3          :1;
  byte BIT4          :1;
  byte BIT5          :1;
  byte BIT6          :1;
  byte BIT7          :1;
 }Bits;
}PORTA;
定义了之后,就可以用PORTA.Bits.BIT0来表示最低位了。当然,结构体了各个位的顺序也是特定的,是由高位到低位的。冒号后面的数字表示当前成员占几位。这个数字不一定为1。比如
 union                                
{
 uint16 Word;
 struct
 {
  uint8 low          :8;
  uint8 high         :8;
 }bytes;
}angle;
这里皆可以引用angle.bytes.low和angle.bytes.high来分别访问angle的高低字节了。
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1637240 2014-10-3 11:53

挺好的,一下子清晰了
相关推荐阅读
用户83229 2009-06-18 12:54
仿制C3088数字摄像头(OV6620)成功
    我做的OV6620数字摄像头好用喽!先上图片!        这个东西是帮师弟们参加智能车竞赛做的。本来最开始是从深圳康美迪亚买的模块,就这么个小东西,一个居然卖300多块钱。无奈最近资金紧张...
用户83229 2009-04-08 18:58
中广核,擦肩而过,是福是祸
        早就听说过中广核好的变态的待遇,说句心里话,真的很诱人!可是,当这一份中广核的协议摆在我面前时,我却拒绝了。        先说说这次招聘的来龙去脉吧。这次广核来我们学校招聘的是“订单...
用户83229 2009-03-30 13:11
电视技术中常见英文解释
最近在做毕设文献翻译,整理了一些电视技术中常见的英文名词Horizontal Sync:行同步。行同步脉冲用来告诉接收系统,新的扫描行的起始点。HIS:Hue, Saturation and Inte...
用户83229 2009-03-01 20:57
位图(BMP)文件头格式及数据分析
由于BMP文件有诸多格式,这里只以256色彩色位图为例来分析一下。  这个图是我自己用画图板做的,如下。图1 BMP图  由于这里限制上传BMP文件,所以这个是JPG的。我的原始的BMP文件大小是20...
用户83229 2009-02-09 16:44
这是一篇很好的文章,学verilog的可以好好看看(ZT)
规范很重要工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己...
用户83229 2008-12-01 20:17
【转帖】CycloneII特殊管脚的使用
CycloneII特殊管脚的使用  在论坛中看到了有朋友发帖讲到Altera FPGA特殊管脚的连接,对我这样的初学者很有帮助,查了一下Altera的CycloneII手册和资料,补充一下各个特殊管脚...
EE直播间
更多
我要评论
1
2
关闭 站长推荐上一条 /3 下一条