关于结构的一些探讨

gwenxia 2007-07-23 09:47:53
typedef struct
{
unsigned int SN:4;
unsigned int:4;
bool goodIn:1;
bool goodTorgle:1;
} TEST;



int main()
{
TEST test = {1234,true,false};

cout << sizeof(test) << endl;

cout << sizeof(unsigned int) << endl;

cout << sizeof(bool) << endl;

return 0;

}

1.为什么程序输出的是8 4 1 而不是 5 4 1呢,因为int占4个字节而bool占一个字节!
2.有没有什么方法给结构成员变量设置默认值啊?
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
richard_ma 2007-07-23
  • 打赏
  • 举报
回复
好像是c++模型,就记得是侯捷译的,已经还图书馆了,不过好像要是c++的编译器才能支持这个功能
richard_ma 2007-07-23
  • 打赏
  • 举报
回复
曾经记得在某本书中看到过,struct也可以带构造函数,先mark,翻书找ing
gwenxia 2007-07-23
  • 打赏
  • 举报
回复
我是说在C中如何给结构的成员变量设置默认值!
theendname 2007-07-23
  • 打赏
  • 举报
回复
typedef struct
{
unsigned int SN:4;
unsigned int:4;
bool goodIn:1;
bool goodTorgle:1;
} TEST;
因为int :4 bool :1 bool:1 位域对其 就是8了
taodm 2007-07-23
  • 打赏
  • 举报
回复
位域的处理,各编译器各不相同。你这个先多试几个编译器再讨论。建议是“永远不要用位域”
问题2:用构造函数。C++里struct就是class,class就是struct

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧