목표: UNION 을 이용하여 학번/주민등록번호를 이용하여 사람을 조회해보자
->struct와 유사한 구조를 가진 union을 이용하면 같은 메모리를 이용하기때문에 메모리 관리에 더 안정적이고 속도를 높일수있습니다
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define STU_NUMBER 1
#define REG_NUMBER 2
struct student {
int type; //공용체가 현재 어떤 변수를 사용하는지를 저장한다
union {
int stu_number;//학번이나
char reg_number[15] ;//주민등록번호를 알면 학생을 구별할수있다
}id;
char name[20];
};
void print(struct student s) {
switch (s.type) {
case STU_NUMBER:
printf("학번:%d\n", s.id.stu_number);
printf("이름:%s\n", s.name);
break;
case REG_NUMBER:
printf("학번:%s\n", s.id.reg_number);
printf("이름:%s\n", s.name);
break;
default:
printf("오류발생");
break;
}
}
void main() {
struct student s1, s2;
s1.type = STU_NUMBER;
s1.id.stu_number = 20190001;
strcpy(s1.name, "홍길동");
s2.type = REG_NUMBER;
strcpy(s2.id.reg_number,"000210");
strcpy(s2.name, "김백골");
print(s1);
print(s2);
}
'코딩 이야기' 카테고리의 다른 글
[C언어] 삽입 정렬 구현 프로그램 (0) | 2021.10.09 |
---|---|
[C언어]퀵 정렬 프로그램 구현하기 (0) | 2021.10.08 |
[C언어] 문자열의 암호화 구현하기 (줄리어스 시저) (0) | 2021.08.23 |
[C언어] 연도, 월, 일 날짜를 입력하면 요일을 반환하는 함수를 구현해보자( 문자열, 배열 사용) (0) | 2021.08.15 |
[C언어] 1차원 배열의 최대값을 찾아보자 (0) | 2021.07.29 |