기본 콘텐츠로 건너뛰기

전처리기

컴파일러에 앞서서 사용자가 정의한 각종 내용을 미리 처리한다.
반드시 #으로 시작하며 문장의 끝에는 세미콜론이 붙지 않는다.
소스 파일의 첫 부분에 위치하며, 첫 칸부터 시작해서 입력하고 한 줄에 하나씩의 명령을 입력한다.

#include

헤더파일 등을 포함. 컴파일러의 기본 경로에 있는 파일은 < >안에, 현재 소스의 경로에 있는 때에는 " "안에 파일명을 입력한다.

#define

매크로를 정의. 선행처리기는 매크로와 대응하는 내용을 빈칸을 통해서 구분한다.

매크로 상수

 1 #define PI 3.141592

매크로 함수

 1 #define SQUARE(x) ((x)*(x))
 2 #define PRINTOUT(x) printf(#x)
매개변수에 따옴표를 포함시키려면 #을 붙인다.

#if, #elif, #else, #endif, #ifdef, #ifndef

조건부 컴파일

 1 #if 조건1
 2     문장1
 3 #elif 조건2
 4     문장2
 5 #else
 6     문장3
 7 #endif

 

내장된 매크로

__DATE__
컴파일 날짜
__TIME__
컴파일 시간
__LINE__
소스 코드의 줄번호
__FILE__
현재 소스 파일의 이름


Example :

 1 #include <stdio.h>
 2 
 3 /*
 4     매크로 함수
 5 */
 6 #define PRINTLN(x) printf("%s\n",x)
 7 #define PRINTOUT(x) printf(#x)
 8 
 9 int main ()
10 {  
11     char str1[] = "String 1.";
12 
13     PRINTLN(str1);
14     PRINTOUT(String 2.);
15 
16     system("PAUSE");
17     return 0;
18 }

댓글

이 블로그의 인기 게시물

연산자 우선 순위

() (괄호) [] (배열) -> (포인터멤버) . (구조체멤버) ! (부정) ~ (1의보수) ++ (증가) -- (감소) - (부호)  + (부호)  (자료형) (형변환)  * (포인터)  & (주소)  sizeof * (곱셈) / (나눗셈) % (나머지) + (덧셈) - (뺄셈) << >> (비트이동) < <= > >= (관계) == != (관계) & (비트논리곱) ^ (비트배타논리합) | ( 비트논리합 ) && (논리곱) || (논리합) ?: (조건) = (할당) += -= *= /= %= &= ^= |= <<= >>= (복합할당) , (쉼표)

주석문

주석(comment)은 프로그램의 기능이나 동작을 메모해두는 문장이다. 컴파일러는 주석의 내용을 무시한다. 여러 줄 주석 시작 기호(/*)와 끝 기호(*/)는 반드시 쌍으로 사용되어야하며, 중복해서 사용되어서는 안된다. 1 /* 2 주석 3 */ 한 줄 주석 원칙적으로, 한 줄 주석문은 C++언어에서 지원되는 형식이다. 1 // 주석

포인터

포인터는 다른 변수의 주소값을 가지는 특별한 변수이다. *는 포인터의 내용 연산자이다. &는 포인터의 주소 연산자이다.  일반 변수 포인터 변수   선언  int a; // 정수형 변수 a  int *a; // 포인터 변수 a를 종수형으로 선언  값 할당  int a = 100; // 변수 a에 100할당  *a = 100; // a 주소에 100 할당  주소 참조  &a; // 변수 a의 주소  a; // 주소  주소 연산  할 수 없음  a--; // 포인터를 1 감소 선언 1 자료형 * 포인터변수명 ; 1 int * p ; 변수 p는 포인터 변수이며, 정수형의 값을 가지는 변수에 대한 주소를 가진다. 선언시에 사용되는 *는 내용 연산자가 아니다. 초기화 포인터 변수는 반드시 초기화 후에 사용해야 한다. 1 int * p ; 2 int i ; 3 p = & i ; 포인터 변수의 크기 포인터 변수의 자료형은 포인터가 가르키는 변수의 자료형이다. 포인터 변수의 크기는 포인터가 가르키는 자료형의 크기와 무관하다. 1 #include <stdio.h> 2 3 /* 4 포인터의 크기 5 */ 6 7 int main () 8 { 9 int i = 4 ; 10 int * p_i = & i ; 11 char ch = 'a' ; 12 char * p_ch = & ch ; 13 double dbl = 1.0 ; 14 double * p_dbl = & dbl ; 15 16 printf ( "%d \n " , sizeof ( p_i )); 17 printf ( "%d \n " , size...