팔만코딩경
/
Library DB
/
C언어 기초문법(?)
/
C언어 12강. 기타 문법
/
LIST
Search
Share
LIST
Gallery view
Search
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
제어를 옮길 위치를 나타냄
enum, goto, union
•
역할
컴파일 전에 파일 내용이나 소스 내용을 삽입, 수정하기 위한 역할
•
지시문
#define
, #error,
#if
, #elif, #else,
#endif
,
#ifndef
#ifdef,
#include
, #line, #undef,
대부분 '#' 으로 시작됨
파란색글씨는 자주 쓰는 전처리기 지시문이다.
전처리기 지시문 : #define
•
#define 역할
매크로 상수와 함수를 생성하는 역할
•
#define 형식
◦
매크로 상수 형식
: 문자열이 상수를 대신하는 형식
◦
매크로 함수 형식
: 간소화 된 함수 형식
•
매크로 상수 형식
메인함수 위에 #include 밑에 작성하는게 관례이다.
#
define
TWO
2
#
define
매크로상수 치환상수
C
복사
•
매크로 상수 예
#
include
<stdio.h>
#
define
PI
3.14
#
define
MAX
20
int
main
(
void
)
{
char
strname
[
MAX
]
=
"C language"
;
printf
(
"%.2f %s\n"
,
PI
,
strname
)
;
return
0
;
}
C
복사
전처리기 지시문
•
선언에 따른 구분
◦
지역 변수 local variable
함수 안에 선언
◦
전역 변수 global variable
함수 밖에 선언
◦
정적 변수 static variable
static 키워드와 함께 함수 안과 밖에 선언
static 데이터형 변수명;
•
사용 범위 구분
◦
지역 변수
함수 안에서만 사용 가능
◦
전역 변수
프로젝트 전체에서 사용 가능
전역변수가 선언된 파일 안에서 모두 사용할 수 있다.
◦
정적 변수
선언된 함수 안과 해당 파일에서만 사용 가능
함수 안에서는 지역변수의 성향이 있지만 종료는 프로그램이 종료될때 같이 종료 된다.
•
사용 범위에 따른 예 : 지역변수
함수 안에서만 사용
#
include
<stdio.h>
void
func
(
int
var1
)
{
int
var2
=
10
;
printf
(
"%p %p\n"
,
&
var1
,
&
var2
)
;
}
int
main
(
void
)
{
int
var1
=
30
;
func
(
var1
)
;
printf
(
"%p\n"
,
&
var1
)
;
return
0
;
}
C
복사
•
사용 범위에 따른 분류 예 : 전역 변수
함수 밖에 선언된 변수로 주로 상단에 위치
#
include
<stdio.h>
#
include
<stdlib.h>
int
g_var
;
// 기본적으로 0으로 초기화가 된다
void
func
(
)
{
g_var
++
;
}
int
main
(
void
)
{
printf
(
"%d\n"
,
g_var
)
;
func
(
)
;
printf
(
"%d\n"
,
g_var
)
;
return
0
;
}
C
복사
•
사용 범위에 따른 분류 예 : 정적 변수(1)
◦
함수 밖에 선언되며 전역변수와 동일한 기능
단, 선언된 파일 안에서만 전역적으로 사용
// 함수 밖에 선언된 경우
#
include
<stdio.h>
#
include
<stdlib.h>
static
int
g_var
;
// 0으로 초기값이 설정이된다.
void
func
(
)
{
g_var
++
;
}
int
main
(
void
)
{
printf
(
"%d "
,
g_var
)
;
func
(
)
;
printf
(
"%d "
,
g_var
)
;
return
0
;
}
C
복사
•
사용 범위에 따른 분류 예 : 정적 변수(2)
◦
함수 안에서 사용될 때는 프로그램이 종결될 때까지 값 유지
// 함수 안에서 사용될 경우
#
include
<stdio.h>
#
include
<stdlib.h>
void
func
(
)
{
static
int
var
;
printf
(
"%d\n"
,
var
++
)
;
}
int
main
(
void
)
{
func
(
)
;
func
(
)
;
func
(
)
;
func
(
)
;
return
0
;
}
C
복사
변수의 사용 범위
•
의미
여러 변수와 함수를 기능별로 구분하여 외부 파일에 저장한 후에 필요에 따라 main( ) 에서 호출하여 컴파일 하는 방법
•
1 단계 : 파일 추가 항목 선택
•
•
2 단계 : 파일 선택 및 생성
(단, 확장자는 .c로 해야한다.)
•
헤더 파일 설정
◦
표준 헤더 파일은 < > 로 감싼다.
#include <stdio.h>
◦
사용자가 직접 제가한 헤더 파일은 큰 따옴표(" ")로 감싼다.
#include "func1.h"
•
사용자가 생성한 헤더 파일의 내용
함수 원형과 외부 전역 변수 등
분할 컴파일 소스
분할 컴파일