C언어 Union과 Enum

#include <stdio.h>

typedef enum _GradeType { TYPE_GRADE, TYPE_SCORE} GradeType;
typedef struct _my_score
{
GradeType type;
union
{
char grade;
int score;
} result;
} my_score;

int main()
{
int grade_type = TYPE_GRADE;
my_score s1 = {0};

printf("GradeType input : ( 0 : Grade, 1 : Score)?");
scanf("%d", &grade_type);

switch (grade_type){
case TYPE_GRADE:
{
char temp[10] = {0};
printf("input Grade ( A ~ F )");
scanf("%s", temp);
s1.result.grade = temp[0];
break;
}
case TYPE_SCORE:
printf("input Score ( 0 ~ 100 )");
scanf("%d", &s1.result.score);
break;
default:
printf("Wrong Type");
break;
}

switch (grade_type){
case TYPE_GRADE:
printf("Grade : %c", s1.result.grade);
break;
case TYPE_SCORE:
printf("Score : %d", s1.result.score);
break;
default:
break;
}

return 0;
}




> Executing task: ./union_and_enum.exe <

GradeType input : ( 0 : Grade, 1 : Score)?0
input Grade ( A ~ F )B
Grade : B
         터미널이 작업에서 다시 사용됩니다. 닫으려면 아무 키나 누르세요.

> Executing task: ./union_and_enum.exe <

GradeType input : ( 0 : Grade, 1 : Score)?1
input Score ( 0 ~ 100 )95
Score : 95






댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud