C 언어 | C 언어 입문 | 주석(comment)

주석(comment)를 이용하여 코드에 어떤 메모를 남길 수 있다. 주석은 컴파일시 무시되므로 코드에 영향을주지 않는다.

언젠가 다시 보기 보기 위하여

이 책의 C 언어 샘플 프로그램은 아무리 길어도 수십 줄 정도일 것이다. 이는 독자가 각 장이 주제에 따라 중요한 기능의 원리를 충분히 학습할 수 있도록, 소스 코드는 가능한 심플한 형태로 정리하고, 불필요한 것을 최대한 포함하지 않았기 때문이다.

그러나 실제 개발 현장의 코드는 적어도 수천, 대규모 개발의 경우 수십만 ~ 수백만 줄에 달한다. 이 정도의 대규모 프로그램 코드의 경우 개발자도 관리가 힘듭니다. 다른 사람이 쓴 소스을 읽어야 하는 경우도 있다. 비록 자신의 코드도 나중에 다시 읽어 때, 그것이 무엇을 의미하는지 알 수 없게 될 수있을 것이다.

그래서 프로그램의 실행과는 아무 상관없는 코멘트(주석)을 소스에 적어 둘 수 있다. C 언어 주석은 /*로 시작해서 */로 끝난다. /**/ 사이의 문자는 예외없이 컴파일시에 제거된다. 개행 문자를 포함할 수 있기 때문에, 여러 줄의 코멘트도 가능하다. 코멘트를 남겨두면 다른 사람이 소스를 볼 때, 무엇을 하고 있는지를 설명할 수 있으며, 향후 스스로 다시 읽게 되면 코드가 무엇을 의미하는지를 기억나게 해줄 것이다.

코드1

#include <stdio.h>

int main()
{
    /* 코멘트이므로 프로그램에는 어떤 영향도 없다 */
    printf("이것은 실행됩니다.\n");
    /* printf("코멘트에 포함되어 있기 때문에 실행되지 않는다.\n"); */
    /*
    소스를 해독 할 수 있도록 보충 설명 등을 기술한다.
    댓글은 몇줄 있어도 괜찮다.
    */
    return 0;
}

이 프로그램은 코드 내에 한글로 코멘트를 남기고 있다. 이처럼 대규모 개발 프로젝트는 프로그램의 설명을 코멘트로 남기는 것이 바람직하다. 다만, 코멘트는 문자열 리터럴 안에는 남길 수 없다.

또한 코멘트을 겹쳐서 작성할 수 없다. 예를 들어 /* /* */ */ 라고 쓴다면 /* /* */까지가 주석으로 해석된다.

C 언어 사양으로 정의되어 있지 않지만, 많은 컴파일러는 한 줄 주석도 지원하고 있다. 한줄 주석은 연속된 슬래시 문자 // 이루어지고, 여기에서 다음 줄까지를 코멘트로 한다. 예를 들어 다음과 같이 될 것이다.

// 여기 코멘트이다.
// 범위는 1행 뿐이므로, 각 행에 지정해야 한다.
printf("Kitty on your lap"); // 줄의 도중에도 가능하다.
/////////// 이것도 코멘트이다. ///////////

이 한줄 주석은 C++ 언어 사양이며, C 언어 사양은 아니지만, 현대의 많은 컴파일러는 C++를 지원하기 때문에, C 언어에서도 한줄 댓글을 허용하고 있다. 예를 들어, 어떤 행을 삭제하고 컴파일하고 싶은 경우는이 한줄 주석을 사용하여 스마트한 실험하는 것도 할 수 있는 것이다. 물론 순수한 C 코드를 작성하려 한다면, 이 코멘트는 사용해서는 안된다.

참고로 C 언어의 코멘트 /* */ C ++에서 추가된 코멘트 //는 꽤 많은 프로그래밍 언어에서 공통 코멘트의 표준적인 존재이다. C/C++ 언어는 물론 Java 언어, C # 언어, JavaScript 언어 등에서도 이 댓글이 사용되고 있다.




최종 수정 : 2017-11-26