매크로 연결
, 손 태현님이 작성숫자는 들어가던데 왜 변수는 못들어가나요
#include <stdio.h>
#define CONCAT(a, b) a##b
int main()
{
int num1 = 1;
int num2 = 2;
printf("%d\n", CONCAT(1, 2));
printf("%d\n", CONCAT(num1, num2));
return 0;
}
Re: 매크로 연결
, 도장_ 관리자님이 작성매크로 치환은 전처리 단계에서 이뤄집니다. #include 같은 헤더 파일 처리도 전처리 단계입니다.
전처리 단계 --> 컴파일 단계
변수는 컴파일 단계에서만 알 수 있습니다. int a = 1;이면 변수 a가 1이라는 걸 알아야 치환이 가능한데, 전처리 단계에서는 변수 a의 값을 알 수 없으므로 동작하지 않습니다.
전처리나 컴파일 단계에 대해서는 일반적으로 알 필요가 없습니다. 코딩이나 프로그래밍을 하는데는 전처리 -> 컴파일 단계라는 것만 알면 됩니다. 컴퓨터 공학 전공자이거나 전문적으로 알고 싶다면 학부 전공 과목 중에 <컴파일러>를 들으면 됩니다(어렵기로 악명 높고, 학점 안 주기로 유명한 과목입니다.)
프로그래밍 언어 연구실 같은 곳에 석사 과정으로 진학하신다면
<Linkers and Loaders>나 <Modern Compiler Design> 같은 전문서적을 보게 됩니다.
컴파일러를 만드는 회사는 전 세계에 몇 개 없고, 상위 100여 명의 박사급이나 해커들이 만든다고 보면 됩니다.
C 언어 창시자 - 데니스 리치, 하버드대학교
자바 창시자 - 제임스 고슬링, 카네기멜론 대학교 박사
파이썬 창시자 - 귀도 반 로섬, 암스테르담 대학교 석사
그러니 우리는 즐겁게 C 언어를 익히고 코딩을 즐깁시다!