结构体嵌套枚举给结构体变量赋值注意

分两种情况来讨论
1、枚举类型定义在结构体外

//定义枚举类型
enum Flash
{
    
    
	AlwaysOn, //0开始递增
	AlwaysOff,
	AllFlashLight,
	AlternateFlash,
};

//定义结构体
typedef struct
{
    
    
	int FlashTime;
	enum Flash status;
}sLED;

int main()
{
    
    
	sLED LED;
	LED.FlashTime = 300;
	LED.status = AlwaysOn;
	return 0;
}

枚举类型定义在外部时可以直接使用


2、枚举类型定义在结构体内

typedef struct
{
    
    
	int FlashTime;
	enum Flash
	{
    
    
		AlwaysOn, //0开始递增
		AlwaysOff,
		AllFlashLight,
		AlternateFlash,
	}status;
}sLED;

int main()
{
    
    
	sLED LED;
	LED.FlashTime = 300;
	LED.status = sLED::AlwaysOn;
	return 0;
}

使用域操作符 :: 表示AlwaysOn是属于sLED的,直接用则无法识别

猜你喜欢

转载自blog.csdn.net/weixin_43689161/article/details/123665458
今日推荐