삽질의 현장/- C

곱씹어보자 C!_#026_삽잡이의 두서없이 막말하는 전처리기

shovelman 2015. 6. 30. 23:12

삽잡이는 계속 달립니다

이번에는 전처리기~!


우리는 지금까지 C언어에 대해서 공부하고 있습니다...

C언어는 컴퓨터보다 사람에게 더 가까운 Text Language라고 하여

Text Code라고 부릅니다. 

C언어 외 모든 프로그래밍 언어는 사람이 이해하고 작성한 언어이지요...

컴퓨터가 이해하기에는 무리가 따릅니다.

그래서 컴파일러라는 친구를 통해 기계어로 번역을 하게 되죠...

기계어는 0과 1의 집합으로 Binary Code라고 부릅니다...


아무튼... 우리는 사람이 이해할 수 있는 Text Code를 작성하게 됩니다.

컴퓨터가 이해할 수 있는 기계어를 만들기 위해 컴파일러라는 친구가 컴파일작업을 통해

Binary Code를 만들어준다 이거죠..


컴파일 오류는 뭘 말하는 것일까요?

컴파일러는 사람과 컴퓨터사이에 약속한 정의에 의해 0과 1의 집합으로 바꾸는 것인데요 

만약 우리가 그 약속을 어긴다면 컴파일러는 어떻게 변환해야할지 모르게 되어

오류를 발생시킵니다. 그것을 바로 컴파일 오류라고 하지요...


그럼 여기까지 컴파일러의 역할에 대해서 알아봤는데요,


오늘 말하고자하는 내용은 바로 전처리기입니다.

이것이 무엇이냐?


바로, 본작업을 처리하기 전에 부가적으로 본 작업의 효율성을 높이기 위해 처리하는 것이라고 합니다...

어렵죠... 

그러니까, 본 작업 전에 처리하는 작업을 전처리 작업이라고 합니다.


Text Code내에는 전처리 작업이 들어가 있습니다.

우리가 아무 생각없이 쓰던 #include 도 전처리 작업의 일종입니다.

참고로 C 계열 언어에서는 모두 #이 붙는다는 소문이...


그렇다면 어떻게 되는것인가하면,

컴파일러가 컴파일을 하기위해 Text Code에 개입하기 이전에, 

전처리기는 Text Code를 또 다른 Text Code로 변환하게 되는 것입니다.


뭔말이지... 왜 사람이 작성한 Code를 기계어도 아니고 또 Text Code로 변환하는 것일까요...


왜냐... 전처리기 친구가 전처리문을 보면, 

컴파일러가 프로그램을 효율적으로 처리하도록 변환된 Text Code로 바꿔주는 것입니다.


전처리기가 한바퀴 돌면 Text Code는 컴파일러가 보기 쉽게 만들어진 Text Code로 바뀌어 진답니다...

이를 다시 말씀드리자면 전처리 작업이라고 하구요...


Text Code를 컴파일러가 이해하는 

또 다른 Text Code로 변환하는 것을 바로 전처리 작업이라고 부릅니다.