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 idempotent

About G1 GC

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

sneak peek jitpack

Optimistic Concurrency Control VS Pessimistic Concurrency Control - What should i choose?

DDD(Domain Driven Design) - Aggregate (어그리게잇)

Strategy Pattern In Spring (feat. JPA)