선행처리기
선행처리기는 컴파일되기전에 미리 처리하는 역할을 뜻한다.
프로그램 실행순서
선행처리기 -> 컴파일 -> 링킹 (obj 파일생성 ) -> 실행파일(exe)파일 생성 -> 실행
- 선행처리기 종류
키워드 |
기능 |
#include |
파일을 추가 |
#define | 매크로 정의 |
#if #elif #else #endif | 조건부 선행처리기 |
사용의 예)
#include 의 사용의예
#include<stdio.h> // 시스템 설치 경로에 /usr/include/stdio.h 헤더파일을 가져옴 #inlcude"MyHeaderFile.h" // 현재 프로젝트가 있는 경로에서 파일을가져옴 ( 사용자정의 헤더문) void main(){ char wordA = 'a'; char wordB = 'b'; printf("WordA = %c , wordB = %c \n" , wordA, wordB); }
헤더파일 |
설명 |
stdio.h |
표준 입출력 함수 printf, scanf , fopen, fread, fwrite ··· 등.. |
stdlib.h |
메모리관리, 프로그램유틸, 문자열변환,난수생성
|
math.h |
수학삼각함수등.. sin, cos , tan 등.. |
time.h |
시스템 시간함수 |
thread.h |
스레드 함수 |
string.h |
문자열 함수 , 문자열비교문 strcpy, strcmp 등.. |
#define 매크로문 사용예
#define MY_BEST_NUMBER 5555 #define MY_FUNC(x) (10) * (x) #include<stdio.h> void main(){ int number = 10; // 10 number = MY_BEST_NUMBER; // MY_BEST_NUMBER 가 5555 로 치환됨 printf("NUMBER = %d\n",number) // NUMBER = 5555 int funcNumber = MY_FUNC(number); // int funcNumber = (10 ) * (5555) 로 치환됨. printf("func Number = %d",funcNumber); // func Number = 55550 }
※ 매크로 문은 대입되는것이아니라 치환되는것이다.
#if #elif #else #endif
// 예를 들었습니다. 이코드문은 실행되지 않습니다.
#include<stdio.h>
void main(){
char word = 'a';
#if RUN_PLATFORM == PLATFORM_WINDOWS_10 // RUN_PLATFOM 이 windows10 이라면.
word = 'w';
#elif RUN_PLATFORM == PLATFORM_MAC_OS // RUN_PLATFORM 이 맥OS 라면.
word = 'm';
#else // 위에 조건이 전부 False 라면.
word = 'a';
#endif // #if 로 시작하면 #endif 로 닫아줘야한다.
}
주의점
소문자로하면 변수로 착각할수있기때문에 대문자로 표기한다. 그리고 매크로경우 상수, 문자열, 문자 , 수식으로 사용된다.
C언어 반복문 (31) | 2019.03.31 |
---|---|
C언어 선택제어문. (31) | 2019.03.31 |
C언어 입출력함수과 연산자 (0) | 2019.03.22 |
처리장치와 데이터 (0) | 2019.03.17 |
컴퓨터의 이해 (31) | 2019.03.11 |
유비쿼터스 컴퓨팅 개념, 주요이슈 (0) | 2019.03.06 |