鱼C论坛

 找回密码
 立即注册
查看: 1626|回复: 2

位域/bit field 里面的逗号,咋搞的==

[复制链接]
发表于 2015-7-20 07:32:08 | 显示全部楼层 |阅读模式
5鱼币
特别声明下,因为要忙些事情,所以很少上论坛,回复时间稍慢,请见谅;

插入代码(问题在注释里面):
#include<stdio.h>
int main(void){
        struct Bit{
                int a:3;
                int :3;
                //int a:;[error];
                //int a; [error,is int ];
                //int 0; [error];
                int :0;
                int b:1;
        };
        struct Bit_2{
                int l1:1,
                int l2:2,//问题:逗号运算在这里为什么不行,明明没有超过一个字节和一个数据类型? 
                int l3:1;
                int n:9;
                int a:1;
                int b:7;
                int c:9;
        
        };        
        
        printf("sizeof(Bit)=%d;\n",sizeof(struct Bit));
        printf("sizeof(Bit_2)=%d;\n",sizeof(struct Bit_2));
return 0;
}
逗号运算符的错误提示(struct Bit_2).png

时间:2013年7月20日07:34:03;

最佳答案

查看完整内容

楼主 逗号表达式 一般是连接表达式(不是定义式) 多个定义式之间肯定要用分号; 如果一定想要用逗号表达式 可以这样 struct Bit_2{ int l1:1, l2:2; int l3:1; int n:9; int a:1; int b:7; int c:9; };
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-20 07:32:09 | 显示全部楼层
楼主 逗号表达式 一般是连接表达式(不是定义式)
多个定义式之间肯定要用分号;
如果一定想要用逗号表达式 可以这样
  struct Bit_2{
                int l1:1, l2:2;
                int l3:1;
                int n:9;
                int a:1;
                int b:7;
                int c:9;
        
        };      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-7-20 12:32:17 | 显示全部楼层
ryxcaixia 发表于 2015-7-20 09:04
楼主 逗号表达式 一般是连接表达式(不是定义式)
多个定义式之间肯定要用分号;
如果一定想要用逗号表达式  ...

谢谢 :handshake
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 05:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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