Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Python
- server
- Algorithm
- Algospot
- C언어
- sorting
- 인프런
- JavaScript
- udemy
- programmers
- String
- dfs
- 따라하며 배우는 C언어
- BFS
- greedy
- 종만북
- C
- 따배씨
- web
- BOJ
- graph
- Math
- DP
- 생활코딩
- 정수론
- php
- 따라하면서 배우는 C언어
- Cleancode
- BASIC
- 백준
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 14.16 공용체와 구조체를 함께 사용하기 본문
따배씨 - 따라하며 배우는 C언어
14강 구조체_2
14.16 공용체와 구조체를 함께 사용하기
#include <stdio.h>
/*
Unions And Structures
*/
struct personal_owner
{
char rrn1[7]; //Resident Registration Number
char rrn2[8]; //ex: 830422-1185600
};
struct company_owner
{
char crn1[4]; //Company Registraton Number
char crn2[3]; //ex: 111-22-33333
char crn3[6];
};
union data
{
struct personal_owner po;
struct company_owner co;
};
struct car_data
{
char model[15];
int status; /* 0 = personal, 1 = company */
union data ownerinfo;
};
void print_car(struct car_data car)
{
printf("---------------------------------------\n");
printf("Car model : %s\n", car.model);
if (car.status == 0) /* 0 = personal, 1 = company */
{
printf("Personal owner : %s-%s\n", car.ownerinfo.po.rrn1, car.ownerinfo.po.rrn2);
}
else
{
printf("Company owner : %s-%s-%s\n", car.ownerinfo.co.crn1, car.ownerinfo.co.crn2, car.ownerinfo.co.crn3);
}
printf("---------------------------------------\n");
}
int main()
{
struct car_data my_car = {.model = "Avante", .status = 0, .ownerinfo.po = {"830422", "1185600"}};
struct car_data company_car = {.model = "Sonata", .status = 0, .ownerinfo.co = {"111", "22", "333"}};
print_car(my_car);
print_car(company_car);
return 0;
}
union data
{
struct personal_owner po;
struct company_owner co;
};
- personal_owner 와 company_onwer 구조체를 공용체로 묶어서 처리
struct car_data
{
char model[15];
int status; /* 0 = personal, 1 = company */
union data ownerinfo;
};
- status 에 따라 다른 ownerinfo 를 받아 오게 되는데, union 을 사용하므로써 메모리의 효용을 높임
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
'Language > C' 카테고리의 다른 글
[따배씨] 14.18 열거형 (0) | 2021.07.06 |
---|---|
[따배씨] 14.17 익명 공용체 (0) | 2021.07.06 |
[따배씨] 14.15 공용체 Union 의 원리 (0) | 2021.07.05 |
[따배씨] 14.14 구조체 파일 입출력 연습문제 (0) | 2021.07.04 |
[따배씨] 14.13 구조체의 배열을 사용하는 함수 (0) | 2021.07.04 |
Comments