프로그래밍을 하는 데 주석은 함수나 알고리즘에 대한 설명을 제공하는 가장 기본적인 방법이다. 코드의 저작권이나 해야할 일, 에러 처리 등도 주석을 통해서 나타낼 수 있다.
C++에서는 주석을 2 가지 방식으로 표현할 수 있다. 한 줄 주석은 //를 이용하고, 여러 줄 주석은 /* */을 이용한다. 다음은 주석을 넣는 방법이다.
// 주석
/*
주석
주석
주석
*/
한 줄 주석은 // 뒤 모든 내용을 주석으로 처리한다. 여러 줄 주석은 /*와 */ 사이 모든 내용을 주석으로 처리한다. 이와 같이 처리된 주석은 컴파일 단계에서 컴파일러에 의해 무시된다.
전처리 지시자란 전처리 단계에서 전처리기가 수행해야 할 일을 표현한다. C++은 인간 친화적인 고급 언어이기 때문에, 소스 코드를 작성하면 컴퓨터가 읽을 수 있도록 번역해주어야 한다. 이러한 번역 작업을 전문용어로 빌드(build)라고 한다. 제일 처음하는 번역 작업이 바로 전처리(preprocess)이다. 이 때 불러올 파일의 위치나 실행할 영역을 지정하는 등 소스 코드에 담긴 내용을 어떻게 처리할 지에 대한 정보, 즉 메타 정보를 처리한다. 그리고 컴파일(compile) 단계를 거쳐 소스 코드를 기계가 읽을 수 있는 오브젝트 파일로 변환시킨다. 그리고 이러한 독립적인 오브젝트 파일들을 한 애플리케이션에서 사용할 수 있게 묶어주는 링크(link) 작업을 거친다. 각 단계를 수행해주는 프로그램을 전처리기(preprocessor), 컴파일러(compiler), 링커(linker)라고 한다. 가장 대표적으로 사용하는 전처리 지시자에 대해서 알아보자.
#include [파일]
해당 지시자는 [파일]의 내용을 지시자가 있는 위치에 넣는다.
코드의 내용이 길어지다보면, 파일들을 작은 단위로 쪼개어서 저장한다.
이 때 함수의 호출 방식이나 매개변수와 함수의 타입과 리턴 타입 등을 함수의 선언부(declaration)이라고 하고 따로 저장하여 컴파일러에게 알려줄 수 있다.
이처럼 함수의 선언부가 적힌 파일을 헤더 파일이라고 한다.
이 때 헤더 파일의 확장자는 .h이다.
그리고 선언된 함수가 실제 어떻게 작동할 지에 대한 내용을 구현부(또는 정의부(definition))이라고 하고, 소스 파일에 따로 작성한다.
이러한 소스 파일의 확장자는 .cpp이다.
#define [키] [값]
코드에서 키를 전부 값으로 바꾼다.
예를 들어, #define pi 3.14라고 하면, 파일에 나오는 모든 pi는 3.14가 된다.
#ifdef [키]
#endif