【问题标题】:: operator in c/c++ [duplicate]:c / c ++中的运算符[重复]
【发布时间】:2013-07-12 14:49:32
【问题描述】:

谁能告诉我,这段代码发生了什么。我试图搜索很多地方,但无法理解代码的注释部分到底在做什么。

#include<stdio.h>

struct XYZ {
    //int a:6; this one.
    char s; 
}structure;

int main() {
     printf("%lu",sizeof(structure)); 
     return 0;
}

我得到的输出是 4。

【问题讨论】:

标签: c++ c


【解决方案1】:

该行已被注释掉。它什么也没做。

如果不注释掉,则表示int a 的大小仅限于 6 位。它对于结构内的位域很有用。

【讨论】:

  • 在同一个字节中使用了 6 位,为其他事物保留 2 位?
  • 哪个 6 位?该结构中的第一个还是最后一个?
  • @huseyintugrulbuyukisik 你可以自己检查一下。使用int a:1; 创建结构,将a 设置为1 并查看布局。我想这取决于你是使用大端还是小端。
猜你喜欢
  • 2011-12-24
  • 2012-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-27
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
相关资源
最近更新 更多