티스토리 뷰

 

이번엔 매크로 함수에 대해 원리부터 다양한 문법까지 글을 나눠서 적어볼 예정이다. 나머지 글이 다 업데이트되면 링크를 달아놓겠다.

 

 

 

매크로

0. 매크로(macro)의 원리와 이해 

1. 매크로 상수와 함수 :#define Object, Function                    https://ak47001.tistory.com/10

2. 조건부 컴파일 위한 매크로 : #if #ifndef #endif #else #elif   

 

 

 

 

 

 

 

 

 

 

0. 매크로의 원리

매크로(macro)는 프로그래밍 언어의 명령의 일종이다. 즉, 몇 번이든 상관없이 치환을 해준다는 의미이다. 치환의 대상은 정말 여러 가지로 많다. 파일 이름을 보고 그 파일에 있는 내용들을 전부 포함시키거나 변수나 함수를 치환시키도 한다. 때론 조건부 컴파일을 위한 매크로를 걸어두기도 한다. 매크로의 원리는 깊게 들어가면 어렵겠지만 얕게 생각하면 아주 가벼운 개념이다.

 

 

 

 

 

 

우리가 처음에 C언어를 코딩했을 때 Hello world 젤 첫 문장에 해당되는 친구를 기억하는가? 이 친구가 대표적인 매크로 문장이다. #include <stdio.h> 이를 통해 우리는 printf 함수를 호출할 수 있게 해주는 고마운 친구였다. 어느 정도 코딩을 하다 보면 이젠 저 문장의 의미를 정확히 알아야 되는 순간이 온다. 오늘 드디어 그 순간이 왔다. 한 번 자세히 알아보자.

#include <stdio.h>

int main(void) {
	printf("Hello World");
	return 0;
}

 

 

 

 

 

 

#의 의미?    #은 전처리문구를 의미한다. 이렇게 말해선 많은 의문점이 들 거다. 그래서 좀 더 자세하게 설명하겠다. 우리가 비쥬얼스튜디오에서 Ctl + F5를 누르거나 디버깅하지 않고 시작을 프로그램이 빌드된다. 그 과정은 밑에 그림과 같다.

지금 우리가 주목해야 되는 단계를 소스 코드에서 확장된 소스 코드로 넘어가는 구간이다. 그 구간을 전처리라고 부른다. 그리고 전처리기가 규칙에 맞게 소스 코드를 변형시켜 준다. 그럼 전처리기는 무엇을 기준으로 변형시켜 주겠는가? 바로 전처리 문구(#)를 보고 변형시켜 준다. 그래서  #을 넣어 컴파일 이전에 전처리 과정을 거쳐 확장된 소스 코드를 만든다.

 

 

 

 

 

이로서 우리는 매크로에 대해 이해할 수 있다. 위에서 매크로는 특정을 명령을 받았을 때 치환을 해주는 것이라고 했다. 즉, 전처리기가 전처리 문구를 보고 소스 코드를 변형시켜 주는 행위가 치환한다는 의미이다. #include <stdio.h>를 하게 되면 stido라는 헤더파일의 모든 내용이 치환된다. 그래서 하나의 소스 코드에서 정의하지 않은 함수들을 맘껏 사용할 수 있게 되는 것이다.

 

 

 

 

 

 

 

#include 

추가로 #include<  >에 대해서 간단하게 이야기해보겠다. #include는  < > 안에 있는 헤더파일( .h 로 끝나는 파일을 말한다. )을 단순히 포함시킨다는 의미이다.  참고로 <  > 말고도 "  "도 올 수 있다.

 

 

 

 

표준 헤더파일은 stdio.h, stdlib.h string.h unistd.h time.h 등 아주 다양한 헤더파일들이 존재하며 비쥬얼 스튜디오를 사용한다면 설치하면서 전부 내려받은 파일이다. 우리는 그 파일 안에 있는 함수 클래스 등... 아주 용이하게 사용할 수 있어야 한다. 그 수많은 내용들을 알려면 필요할 때마다 검색해서 찾아보고 수용할 수 있는 능력을 길러야 된다고 생각한다. ( 그래서 문법이 매우매우 중요하다! )

 

 

 

 

 

 

 

 

 

#include 외에도 #뒤에 올 수 있는 것들이 많다 이에 대한 문법은 계속해서 업데이트하겠다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함