结构双输出

Utk*_*tav 2 c struct bit-fields

struct node
{
    double a : 23;
    int b;
}s;
int main()
{    
    printf("%d\n",sizeof(s));
}
Run Code Online (Sandbox Code Playgroud)

为什么会产生编译错误?我想知道为什么我们不能用双数据类型做位域.

pmg*_*pmg 5

我的答案是C.我不知道它是否适用于C++.
我建议你不要尝试编写多语言源文件.这很辛苦.

  • 没有原型 printf
  • sizeof(s)所需的类型和类型"%d"不匹配
  • return 0;主要缺少(C89)

你得到了什么编译器错误?


我想知道我们不能用双数据类型做按位

因为C99标准是这样说的,例如(重点是我的)

6.7.2.1/9

位字段被解释为有符号或无符号整数类型,由指定的位数组成.