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 JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째