打印
[STM8]

C语言 没见过的定义

[复制链接]
4631|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wgggjfg|  楼主 | 2010-8-23 18:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在STM8  的触摸库中有如下定义,那引用TimerFlag_T定义时,变量大小是 8字节?还是1字节?
怎么没风过结构体中用":"的? 有没有人能解释一下?
/** Contains all timer flags */
typedef union
{
  u8 whole;  
  struct
  {
    unsigned DTO_1sec          : 1; /**< Detection Time Out (flag set every second) */
    unsigned User_Start_100ms  : 1; /**< From Customer Code to TSL */
    unsigned User_Flag_100ms   : 1; /**< From TSL to Customer Code */
    unsigned RESERVED3         : 1;
    unsigned RESERVED4         : 1;
    unsigned RESERVED5         : 1;
    unsigned RESERVED6         : 1;
    unsigned RESERVED7         : 1;
  } b;
} TimerFlag_T;
沙发
香水城| | 2010-8-23 18:43 | 只看该作者
呵呵,没见过,说明你见识得少,请找一本C语言的书,好好看看有关结构的部分吧,:lol

使用特权

评论回复
板凳
wgggjfg|  楼主 | 2010-8-23 19:46 | 只看该作者
可不可以推荐一本,我看过谭浩强C语言,好像没有说这种用法.

使用特权

评论回复
地板
lllttt7777| | 2010-8-23 20:25 | 只看该作者
google一下“位定义”

使用特权

评论回复
5
zxc729| | 2010-8-23 22:00 | 只看该作者
有一本叫《C和指针》,可以看见,我自己感觉还可以

使用特权

评论回复
6
dadodo| | 2010-8-24 01:33 | 只看该作者
联合+结构,没书就google

使用特权

评论回复
7
mcu5i51| | 2010-8-24 09:00 | 只看该作者
谭浩强的书肯定有这部分,细心些

使用特权

评论回复
8
iciciu| | 2010-8-24 10:18 | 只看该作者
谭浩强 第二版  还真没这部分,  建议看下 C Primer Plus  

这种结构通信里用的比较多,节省空间。。

使用特权

评论回复
9
反质子| | 2010-8-24 11:35 | 只看该作者
是位域吧

使用特权

评论回复
10
airwill| | 2010-8-24 16:35 | 只看该作者
是啊, 这是位域定义。
特别的编译器扩充的定义方式,不认识它不奇怪。
具体得看编译器手册了。

使用特权

评论回复
11
zzu65| | 2010-8-24 17:16 | 只看该作者
以前我也不知道,后来看TI的DSP头文件时看到的,不知道什么意思,所以翻书,但书里只是蜻蜓点水,不过知道什么意思,有这种用法也就行了,TI的库文件里结构体套联合体,联合体又套结构体,刚开始看的晕头转向的,不过看明白一个其他的都迎刃而解了,再后来又看STM32的库文件,也是套过来套过去,不过现在想想,光是看懂这些库文件,也已经有很大帮助了,难怪有人说,看一个程序是否庞大,就看有没有大量用结构体,看一个人是否编程高手,就看运用结构体的技巧如何。

使用特权

评论回复
12
hgjinwei| | 2010-8-24 18:39 | 只看该作者
谭浩强 第三版 第十二章  12.2节  位域(位段) 已经说的够详细了。

使用特权

评论回复
13
wgggjfg|  楼主 | 2010-8-24 19:32 | 只看该作者
我还想再买本《C和指针》,怎么淘宝网上在武汉有 11.90的,400多页,敢买吗?

使用特权

评论回复
14
hotpower| | 2010-8-24 19:33 | 只看该作者
是啊, 这是位域定义。特别的编译器扩充的定义方式,不认识它不奇怪。具体得看编译器手册了。airwill 发表于 2010-8-24 16:35
这年头兴这个

使用特权

评论回复
15
wgggjfg|  楼主 | 2010-8-24 19:59 | 只看该作者
男人吗?有什么不敢!
我一下买了三本C的书:《皇冠信誉C和指针》、《c++沉思录》、《C专家编程》 过几天就知道值不值了。

使用特权

评论回复
16
hotpower| | 2010-8-24 20:41 | 只看该作者
有志气!好样地…

使用特权

评论回复
17
lhzw2001| | 2010-8-24 22:42 | 只看该作者
位域

使用特权

评论回复
18
xixihaha0| | 2010-8-24 23:15 | 只看该作者
位段

使用特权

评论回复
19
deng560| | 2010-8-25 12:49 | 只看该作者
位分配哦,我做过这个东西。分配的数据只占一位。可以实现bool变量

使用特权

评论回复
20
boyyuboy| | 2010-8-25 16:38 | 只看该作者
这样定义位可以节省空间,不过运行起来没有单独定义的(如:unsigned char  RESERVED3; )速度快。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:专业人做专业事!高效充电。

66

主题

441

帖子

3

粉丝