免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2309 | 回复: 4
打印 上一主题 下一主题

想请教一下一个C语言语法问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-17 09:28 |只看该作者 |倒序浏览
struct s3c_fb_variant {
        unsigned int        is_2443:1;
        unsigned short        nr_windows;
        unsigned int        vidtcon;
        unsigned short        wincon;
        unsigned short        winmap;
        unsigned short        keycon;
        unsigned short        buf_start;
        unsigned short        buf_end;
        unsigned short        buf_size;
        unsigned short        osd;
        unsigned short        osd_stride;
        unsigned short        palette[S3C_FB_MAX_WIN];

        unsigned int        has_prtcon:1;
        unsigned int        has_shadowcon:1;
        unsigned int        has_blendcon:1;
        unsigned int        has_alphacon:1;
        unsigned int        has_clksel:1;
        unsigned int        has_fixvclk:1;
};

代码中, 冒号后面的 1 是什么意思啊?  求教。
这是一种什么语法呢,我好像在书上没有见过(:P我读书读得少)

谢谢了!

论坛徽章:
0
2 [报告]
发表于 2012-01-17 17:44 |只看该作者
回复 1# alvininha

前段时间我也遇到这个,查了下,叫位字段,一般很少用,只用在嵌入式应用中。具体你可以网上查一查。
实际上位字段是为了节约存储空间,结构上类似于结构体。
   

论坛徽章:
0
3 [报告]
发表于 2012-01-17 17:47 |只看该作者
回复 1# alvininha


    struct s3c_fb_variant {
        unsigned int        is_2443:1;
        unsigned short        nr_windows;
        unsigned int        vidtcon;
        unsigned short        wincon;
        unsigned short        winmap;
        unsigned short        keycon;
        unsigned short        buf_start;
        unsigned short        buf_end;
        unsigned short        buf_size;
        unsigned short        osd;
        unsigned short        osd_stride;
        unsigned short        palette[S3C_FB_MAX_WIN];

        unsigned int        has_prtcon:1;
        unsigned int        has_shadowcon:1;
        unsigned int        has_blendcon:1;
        unsigned int        has_alphacon:1;
        unsigned int        has_clksel:1;
        unsigned int        has_fixvclk:1;
};
譬如你这个结构体中所定义的,unsigned int is_2443:1表示定义了一个变量is_2443,取值只有0和1.后面的那个1表示该变量是用几位二进制表示。
譬如unsigned int a:2表示a可以有四种取值。

论坛徽章:
0
4 [报告]
发表于 2012-01-31 17:58 |只看该作者
这个在谭浩强的C语言书里面有讲到。。。。。。。

论坛徽章:
0
5 [报告]
发表于 2012-02-01 16:00 |只看该作者
这是位域的表示方法,所谓“位域”是把一个字节中的二进位划分为几个不同的区域,   并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP