Search
Duplicate

enum, goto, union

Created
2021/11/18 08:53
Tags

enum

역할
문자열이 정수형 상수를 대신하도록 한다.
→ 데이터를 프로그래머 입장에서 해설할 수 있게 함
형식
enum 태그 { 문자열1, 문자열2, ...}; enum 태그 { 문자열1 = 초기값, 문자열2, ...};
C
복사
초기값이 없으면 0부터 1씩 증가한 값으로 설정
초기값이 있으면 설정된 값에서부터 시작하여 1씩 증가한 값으로 설정
선언 형식
enum 태그 {ZERO, ONE, TWO}; enum 태그 변수명; 변수명 = ONE; 'enum형 변수에는 상수 대신 정의한 enum 문자열만 사용'
C
복사
일반적인 enum 형 변수 사용 예
// 일반적인 enum 형 변수 사용 예 #include <stdio.h> #include <stdlib.h> enum COUNT{ZERO, ONE, TWO}; int main(void){ enum COUNT ncount; ncount = ONE; printf("%d\n", ncount); return 0; }
C
복사
typedef를 적용한 enum 형 변수 사용 예
// typedef를 적용한 enum형 변수 사용 예 #include <stdio.h> typedef enum _COUNT{ONE =1, TWO, THREE} COUNT; int main(void){ COUNT ncount1, ncount2, ncount3; ncount1 = ONE; ncount2 = TWO; ncount3 = THREE; printf("%d %d %d\n", ncount1, ncount2, ncount3); return 0; }
C
복사

goto 및 레이블 문

역할
제어를 레이블이 있는 위치로 이동시켜 실행하게 함
레이블 lavel
제어를 옮길 위치를 나타냄
goto문 주의 사항과 사용 예
많은 goto문은 제어를 복잡하게 한다.
break와 return 문 사용
중첩된 for문을 빠져 나갈 때 goto문 사용
break는 for문 한 단계만 빠져나가므로
형식
'레이블명 :'
'goto 레이블명;'
int main(){ ... if(m ==3){ goto STOP; } STOP: printf("end\n"); }
C
복사
소스코드
#include <stdio.h> #include <stdlib.h> int main(void){ int i, j; for(i = 0; i < 5; i++){ for(j = 0; j < 2; j++){ if(i==3){ goto STOP; }else{ printf("i : %d\tj : %d\n", i, j); } } } STOP: printf("종료\n"); return 0; }
C
복사

union 공용체

역할
기억 장소를 서로 다른 데이터형이 공유
사용은 구조체와 동일하다.
형식
union 태그{ int nvar; char cvar[4]; };
C
복사
union 공용체 예
#include <stdio.h> union DATA{ struct _IP{int a1, a2, a3, a4;} IpPart; int nIp[4]; }; int main(void){ union DATA Data; printf("ip를 입력하세요 : "); scanf("%d %d %d %d", &Data.nIp[0], &Data.nIp[1], &Data.nIp[2], &Data.nIp[3]); printf("%d.%d.%d.%d\n", Data.IpPart.a1, Data.IpPart.a2, Data.IpPart.a3, Data.IpPart.a4); return 0; }
C
복사