我是靠谱客的博主 独特小蝴蝶,最近开发中收集的这篇文章主要介绍C语言位域应用--一个字节存八个标志位,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/* define.h */
typedef struct {
	unsigned char bit0			:1;	
	unsigned char bit1			:1;
	unsigned char bit2			:1;
	unsigned char bit3			:1;
	unsigned char bit4			:1;
	unsigned char bit5			:1;
	unsigned char bit6			:1;
	unsigned char bit7			:1;
}_STC_BIT;

#define DEF_BIT7(pdata)	((volatile _STC_BIT*)(pdata))->bit7
#define DEF_BIT6(pdata)	((volatile _STC_BIT*)(pdata))->bit6
#define DEF_BIT5(pdata)	((volatile _STC_BIT*)(pdata))->bit5
#define DEF_BIT4(pdata)	((volatile _STC_BIT*)(pdata))->bit4
#define DEF_BIT3(pdata)	((volatile _STC_BIT*)(pdata))->bit3
#define DEF_BIT2(pdata)	((volatile _STC_BIT*)(pdata))->bit2
#define DEF_BIT1(pdata)	((volatile _STC_BIT*)(pdata))->bit1
#define DEF_BIT0(pdata)	((volatile _STC_BIT*)(pdata))->bit0

/* xxx.h */
extern unsigned char status;
...
#define flag_xx4	DEF_BIT4(&status)
#define flag_xx3	DEF_BIT3(&status)
#define flag_xx2	DEF_BIT2(&status)
#define flag_xx1	DEF_BIT1(&status)
#define flag_xx0	DEF_BIT0(&status)

以上来自瑞萨demo。
或者:

union {
	struct {
		uint8_t flag_xx0	: 1;
		uint8_t flag_xx1	: 1;
		uint8_t flag_xx2	: 1;
		uint8_t flag_xx3	: 1;
		uint8_t rsv			: 4;
	}flag;
	uint8_t flags;
}

最后

以上就是独特小蝴蝶为你收集整理的C语言位域应用--一个字节存八个标志位的全部内容,希望文章能够帮你解决C语言位域应用--一个字节存八个标志位所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部