LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1636|回复: 9

[C/C++语法基础问题]关于结构声明中使用“:”来赋值的疑惑

[复制链接]
发表于 2007-9-2 18:25:26 | 显示全部楼层 |阅读模式
读代码时发现的,语法肯定正确,希望寻求解释,摘录一段如下:
/*bsock.h */
struct BSOCK {
  ......
   volatile bool timed_out: 1;        /* timed out in read/write */
   volatile bool terminated: 1;       /* set when BNET_TERMINATE arrives */
   bool duped: 1;                     /* set if duped BSOCK */
   bool spool: 1;                     /* set for spooling */
  ......
   BSOCK *next;                       /* next BSOCK if duped */
  ......
};

结构体中的bool类型变量使用冒号赋值(?),我不理解在结构声明中怎么可以赋值,而且用冒号赋值,煞是奇怪。
发表于 2007-9-2 19:05:45 | 显示全部楼层
这个不是赋值......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-2 19:26:23 | 显示全部楼层
那你说是什么阿!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-2 19:28:13 | 显示全部楼层
还有阿,你在那边的翻译说:
以宏扩展结果的形式出现的 defined 运算符根据 C 标准的规定,是属于未定义行为的。

什么叫作以宏扩展形式出现的defined运算符?
回复 支持 反对

使用道具 举报

发表于 2007-9-2 20:11:07 | 显示全部楼层
关于本帖提到的结构的问题,根据 linuxsir 的习惯,我是不应该给出解释的,因为“授人以渔”是 linuxsir 的传统。这里给个线索吧 google(c struct 位)

那个翻译表述不是太合适,我已经进行了修正,楼主可以再去看看。不过这总归是按我个人的理解做的翻译,并不一定是正确的。

建议楼主去找本好书仔细地读一读吧,以现在的方式得来的知识太不成体系,后患无穷
回复 支持 反对

使用道具 举报

发表于 2007-9-2 21:29:20 | 显示全部楼层
位域,从c继承过来的
已经很少用了
回复 支持 反对

使用道具 举报

发表于 2007-9-2 22:10:53 | 显示全部楼层
就是表示占多少位(bits)的。。。可以节省空间。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-15 13:46:28 | 显示全部楼层
多谢5楼的指点,也谢谢楼上的和楼上的楼上!
回复 支持 反对

使用道具 举报

发表于 2007-9-18 19:48:11 | 显示全部楼层
Post by x11
位域,从c继承过来的
已经很少用了


在通信领域用得非常的多,尤其是协议的定义。

我不能不说楼主这个问题问在实在太肤淺了。如果认为这种语法是赋值,不可理解,可以自己写一小代码测试,但是没有动手。

提问是一个好习惯,无论是多么简单的问题,能问出来都是好事。尤其是把问题问到详细具体的点子,这个版里很多贴都没有做到。会问问题是一种很重要的能力,还有一种更重要的能力是解决问题的能力。独立地分析解决问题的能力远比问问题的能力优先重要。

对不起,看到这个版一些问题,有感而发。对事不对人。
回复 支持 反对

使用道具 举报

发表于 2007-9-19 18:06:18 | 显示全部楼层
楼上说得对,社区的其他朋友们应该学会问些有深度的问题先。
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表