자료형
- 프로그램에서 사용하는 자료의 형태
- 상수 와 변수로 구분
- 프로그램에서 자료(Data) 처리를 위해서 생성과 저장 처리과정이 필요
상수(canstant)
항상 고정된 값을 갖는 자료(데이터)
값이 한번 정해지면 프로그램 도중 그 값을 변경 할 수 없다.
변수(variable)
변할 수 있는 값
프로그램 에서의 변수 → 실행 도중 값이 변할 수 있는 값이 저장되는 기억 공간을 의미
ex) i = 10; → i 라는 변수라는 기억 공간에 값이 계속 변할 수 있다.
기억 공간을 확보하기 위해 사전에 선언을 해야 한다.
선행처리기(Preprocessor)
컴파일에 앞서 프로그램 선두에 선언된 지시자들을 미리 처리하는 역할
종류 | 의미 |
#include | 다른 파일에 있는 코드를 현재 파일에서 사용할 수 있도록 함 |
#define | 상수나 매크로를 정의하며, 코드에서 직접적으로 사용 가능 |
#ifdef | 조건부 컴파일 지시자로, 해당 조건이 참일 때 코드를 컴파일함 |
#ifndef | 조건부 컴파일 지시자로, 해당 조건이 거짓일 때 코드를 컴파일함 |
#undef | #define으로 정의한 상수나 매크로를 해제함 |
#if | 조건부 컴파일 지시자로, 해당 조건이 참일 때 코드를 컴파일함 |
#elif | #if나 #ifdef의 조건이 거짓일 때, 새로운 조건을 검사하고 그 조건이 참일 때 코드를 컴파일함 |
#else | #if나 #ifdef의 조건이 거짓일 때, 코드를 컴파일함 |
#endif | 조건부 컴파일 지시자로, 조건부 컴파일 블록의 끝을 나타냄 |
선행처리기의 주의사항
- 시작은 #이 붙는다.
- 세미콜론을 붙이지 않는다.
- 한줄에 하나의 선행처리기만 사용 할 수 있다.
- 소스의 헤더 부분에 위치시켜야 한다.
#include
헤더 파일을 소스와 함께 읽어서 컴파일 하기 위해 사용
- C프로그램에서 표준 함수등을 사용 하려면 stdio.h 를 inlude 시켜야 함
/*
#include <디렉토리 or 파일명>
*/
#include <stdio.h>
#define
매크로를 정의할때 사용
매크로(macro)란?
- 프로그램 작성 시에 명령이나 수식 또는 상수 값이 자주 사용될 때 이를 대표하는 이름을 붙여 사용한다.
#include <stdio.h>
#define PI 3.141592 // PI를 3.141592로 정의
int main() {
int r = 5;
float circle_area;
circle_area = PI * r * r; // 원의 넓이 계산
printf("반지름이 %d인 원의 넓이는 %f입니다.\\\\n", r, circle_area);
return 0;
}
위 코드에서 #define PI 3.141592는 PI라는 매크로를 3.141592라는 값으로 정의한 것이다.
이렇게 매크로로 상수 값 등을 정의해 두면 이후 코드에서 매크로를 사용해 값을 대입하거나 연산할 수 있다.
조건부 컴파일(#if #else #elif #endif)
조건에 따라 프로그램을 컴파일 한다.
최적의 코드로 프로그램을 작성 할 수 있다. (시스템 성능 향상)
#include <stdio.h>
#define DEBUG 1
int main() {
int a = 10, b = 20, c;
#if DEBUG
printf("a = %d\\\\n", a);
printf("b = %d\\\\n", b);
#endif
c = a + b;
printf("c = %d\\\\n", c);
return 0;
}
위 코드에서 #if DEBUG는 DEBUG 매크로가 1로 정의되어 있을 때에만 실행되는 코드 블록을 의미한다.
이를 통해 디버깅에 유용한 문장들을 포함시키거나, 컴파일 시스템에 따라 다른 코드를 실행할 수 있다.
728x90
'KNOU > 요약정리' 카테고리의 다른 글
[C 프로그래밍] 제어문(선택, 반복, 기타) (0) | 2023.05.10 |
---|---|
[C 프로그래밍] 입출력 함수와 연산자 (0) | 2023.05.10 |
[C 프로그래밍] C언어의 정의 (0) | 2023.05.10 |
[멀티미디어시스템] 멀티미디어의 미래 (0) | 2022.12.09 |
[멀티미디어시스템] 모바일 멀티미디어 (0) | 2022.12.09 |
댓글