1. 공용체 특징
구조체와는 다르게 '가장 큰 자료형 크기를 기준으로' 모든 멤버가 공간을 공유한다.
2. 사용 예시(in embedded system)
typedef union
{
struct
{
uint32_t _reserved0: 1;
uint32_t SLEEPONEXIT: 1;
uint32_t SLEEPDEEP: 1;
uint32_t _reserved1: 1;
uint32_t SEVONPEND: 1;
uint32_t _reserved2: 27;
} b;
uint32_t w;
} SCR_Type;
SCR_Type SystemControlRegister;
SystemControlRegister.w = SCB->SCR;
//SystemControlRegister.b.SLEEPDEEP = 1;
SCB->SCR = 0x100; //For example
SCB->SCR = SystemControlRegister.w;
상황
SCR_Type 공용체를 이용하여 SCB->SCR 레지스터에 접근한다.
예시
SCR_Type 공용체에서 w와 struct b가 메모리 공간을 공유하므로, SystemControlRegister 변수 값을 백업하기 위해 w 멤버를 이용한다.
출처
반응형
'프로그래밍 언어 > C, C++' 카테고리의 다른 글
Trouble Shooting (0) | 2021.01.28 |
---|---|
sprintf, vprintf, svprintf 사용법 (0) | 2021.01.25 |
수준 높은 회사가 C언어 자료형을 사용하는 방법 (0) | 2020.10.10 |
[c] return과 exit 함수의 차이 (0) | 2020.08.20 |
cstring vs string (0) | 2020.08.04 |