STM32中关于结构体成员的赋值问题

2019-03-23 18:06发布

typedef struct tagIsOutputActivate
{
    u8 AllOutput                :1;      
    u8 IO_GREEN_LED                :1;      
    u8 IO_RED_LED                :1;     
    u8 IO_AMP                    :1;      
    u8 IO_TX_LED                :1;        
    u8 IO_RX_LED                :1;        
    u8 IO_CHPARASET_LED            :1;        
    u8 IO_RADIO_OPEN_LED        :1;      

}stIsOutputActivate;
这种结构体中的成员后面的:1是什么意思额。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
lcofjp
1楼-- · 2019-03-24 16:22
 精彩回答 2  元偷偷看……
moyanming2013
2楼-- · 2019-03-24 18:07
lcofjp 发表于 2016-7-12 11:12
你说的我倒是头次听说。。。。

我确保在C99标准下是这样的。
但C11是否改进了这个有清楚的可以聊聊,但为了兼容性,一般推荐用unsigned int型来声明。
moyanming2013
3楼-- · 2019-03-24 21:36
lcofjp 发表于 2016-7-12 11:12
你说的我倒是头次听说。。。。

《C语言程序设计-现代方法 第2版》P367页有关于位域的说明。
hljjxzhla
4楼-- · 2019-03-25 03:11
 精彩回答 2  元偷偷看……
BlackHeart4theW
5楼-- · 2019-03-25 03:22
这是共用体吧,位域。DSP上常见,:1表示占据一位,所以你会看到8个:1
BlackHeart4theW
6楼-- · 2019-03-25 06:04
BlackHeart4theW 发表于 2016-7-12 11:41
这是共用体吧,位域。DSP上常见,:1表示占据一位,所以你会看到8个:1

补充一下,第一个:1是最低位的bit,往下bit逐渐左移(就是变大,8421码那种。。),推荐你看看C相关教材详细了解一下,我讲的也有可能不对。

一周热门 更多>