만물은 저마다 한 가지 이치를 갖추고 있으며, 만 가지 이치는 모두 한 근원에서 나온다.
이런 까닭에 한 가지 이치를 근거로 삼아 유추하면 통하지 못할 것이 없다.
(출처 : 성학집요)
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"
•
사용자가 생성한 헤더 파일의 내용
함수 원형과 외부 전역 변수 등
분할 컴파일 소스
분할 컴파일
