반응형
공용체 (union)
구조체 struct와는 오직 한가지가 다르다.
모든 구조체 변수가 하나의 메모리 공간을 공유한다. (컴퓨터의 그 메모리)
모든 멤버 변수가 같은 메모리를 공유하기 때문에, 공용체는 한 번에 하나의 멤버 변수밖에 사용할 수 없다.
(위 그림을 참고하면 이해하기 쉬울 것 이다.)
예제(16진수 출력)
리틀엔디안에 의해 다음과 같은 결과가 발생한다.
#include <stdio.h>
union A{
int a;
short b;
char c;
};
int main(){
union A z;
z.a=0x12345678;
printf("%x",z.a); //결과: 12345678
printf("%x",z.b); //결과: 5678
printf("%x",z.c); //결과: 78
}
//z.c를 16진수로 출력했을 때, 0x12의 12가 아닌 0x78이 출력되는 것은 리틀엔디안 방식을 사용하고 있기 때문이다.
열거형 (enum)
열거 : [명사] 여러 가지 예나 사실을 낱낱이 죽 늘어놓음.
1) 0, 1, 2, 3처럼 수를 변수에 대응시켜 사용하기 위한 자료형
2) 기본 값은 0으로 시작된다
3) b1, b3 변수처럼 넣어주면 지정한 수를 시작점으로 다시 나열하기 시작한다.
#include <stdio.h>
enum {a1, a2, a3, a4};
enum {b1 = 3, b2, b3 = 1, b4};
int main()
{
printf("%d %d %d %d", a1, a2, a3, a4); //실행결과: 0, 1, 2, 3
printf("%d %d %d %d", b1, b2, b3, b4); //실행결과: 3, 4, 1, 2
}
반응형
'프로그래밍 > C' 카테고리의 다른 글
C언어 argc, argv 정리 (0) | 2024.08.03 |
---|---|
[C언어]10. 구조체 (0) | 2023.12.14 |
[C언어]9. 포인터 (0) | 2023.12.13 |
[C언어]8. 함수 (0) | 2023.12.12 |
3.16 스터디 내용 (0) | 2023.03.18 |