Menu

C++ 주석: 한 줄 //와 여러 줄 /* */

C++에서 주석을 작성하는 방법 - 한 줄 // 메모와 여러 줄 /* */ 블록 - 그리고 코드를 주석 처리하는 방법, 블록 주석이 중첩되지 않는 이유, 남겨둘 가치가 있는 주석이란 무엇인지까지.

이 페이지에는 실행 가능한 에디터가 있습니다 - 편집하고 실행하면 결과를 바로 볼 수 있습니다.

주석은 무엇을 위한 것인가

주석은 C++ 컴파일러가 완전히 무시하는, 소스 코드 안의 텍스트입니다. 컴파일된 프로그램에는 결코 포함되지 않으며, 오직 코드를 읽는 사람을 위해서만 존재합니다. 주석은 어떤 것이 특정 방식으로 작성되었는지 설명하거나, 메모를 남기거나, 코드를 삭제하지 않고 일시적으로 비활성화하는 데 사용합니다.

여러분이 이미 알고 있는 C++ 문법을 바탕으로 보면, 주석은 거의 어디에나 넣을 수 있고 컴파일러가 그냥 건너뛰는 몇 안 되는 것 중 하나입니다. C++에는 두 종류가 있습니다. 한 줄 주석(//)과 여러 줄 블록 주석(/* */)입니다.

한 줄 주석

두 개의 슬래시(//)는 현재 줄의 끝까지 이어지는 주석을 시작합니다. 컴파일러는 //부터 줄바꿈까지의 모든 것을 건너뜁니다.

두 번째 주석이 실제 코드와 같은 줄을 공유하고 있다는 점에 주목하세요. // 에 있는 것은 여전히 실행되고, 그 뒤의 부분만 무시됩니다. 이것이 짧은 메모에 가장 흔히 쓰이는 주석 스타일입니다.

여러 줄 블록 주석

메모가 여러 줄에 걸칠 때는, 각 줄 앞에 //를 붙이는 것보다 블록 주석이 더 깔끔합니다. 블록 주석은 /*로 시작해 */로 끝납니다. 그 둘 사이에 있는 것은 - 몇 줄이든 상관없이 - 모두 무시됩니다.

앞쪽 가장자리를 따라 정렬된 * 문자들은 스타일 관례일 뿐 규칙이 아닙니다. 실제로 의미가 있는 부분은 여는 /*와 닫는 */뿐입니다. 블록 주석은 줄 중간에 들어갈 수도 있습니다 - int x = 5 /* width */ + 2;는 유효합니다 - 다만 그렇게 하면 금세 읽기 어려워집니다.

코드 주석 처리하기

주석은 실험하는 동안 코드를 삭제하지 않고 비활성화하는 표준적인 방법입니다. 한 줄에는 //를, 여러 줄을 한꺼번에 끄려면 블록 주석을 사용하세요.

실행해 보면 두 개의 "runs" 줄만 출력되는 것을 볼 수 있습니다. 주석 처리된 cout 문은 컴파일러에게 보이지 않습니다.

중첩 불가라는 함정

초보자가 걸려드는 함정: 블록 주석은 중첩되지 않습니다. 앞에 /*가 몇 개 있든 첫 번째 */가 주석을 닫습니다. 따라서 /* ... */ 블록을 다른 /* ... */ 블록 안에 감쌀 수 없습니다 - 안쪽의 */가 전체를 끝내 버리고, 그 뒤에 오는 것은 다시 코드(보통 문법 오류)가 됩니다.

/*  Trying to disable a region that already has a block comment...
    int n = 10; /* the width */
    cout << n;
*/  // the first */ above already closed the comment - this line is now stray code

바깥쪽 주석은 the width 뒤의 */에서 끝나므로, 나머지는 더 이상 주석 처리되지 않고 컴파일러는 끝에 남은 */에서 막힙니다. 이미 블록 주석을 포함한 영역을 비활성화해야 할 때는 대신 각 줄에 //를 사용하세요. 대부분의 편집기는 단축키 하나로 선택 영역 전체의 줄 주석을 토글할 수 있어, 이 문제를 완전히 피할 수 있습니다.

좋은 주석 대 잡음

주석은 코드가 스스로 말할 수 없는 것을 설명해야 합니다. 단지 코드를 그대로 되풀이하는 주석은 어수선함만 더하고, 코드가 바뀌면서 낡아 버리기 쉽습니다.

// Bad: just repeats what the code obviously does
i = i + 1; // add one to i

// Better: explains the reason, which the code can't show
retries++; // back off and retry; the API is rate-limited at 5 req/sec

명확한 이름과 구조를 통해 코드 자체를 읽기 쉽게 만드는 것을 목표로 하고, 주석은 를 위해 아껴 두세요 - 의도, 절충, 예외 상황, 그리고 맥락에 대한 링크입니다. 헷갈리는 한 줄을 설명하려고 주석을 쓰고 있는 자신을 발견한다면, 그것은 변수 이름을 바꾸거나 로직을 잘 이름 붙인 함수로 나누라는 신호인 경우가 많습니다.

다음: 변수

이제 코드에 설명을 달 수 있게 되었으니, 다음 구성 요소는 코드 안에 데이터를 저장하는 것입니다. 다음 페이지에서는 변수를 다룹니다 - 변수를 선언하는 방법, 변수가 담는 기본 자료형, 그리고 C++가 정적 타입 언어이기 때문에 강제하는 규칙들입니다.

자주 묻는 질문

C++에서 주석은 어떻게 작성하나요?

한 줄 주석에는 //를 사용합니다. 해당 줄에서 // 뒤에 오는 모든 내용은 컴파일러가 무시합니다. 여러 줄에 걸친 주석은 텍스트를 /**/로 감쌉니다. 예를 들어 // 이것은 메모입니다 또는 /* 이것은 여러 줄에 걸쳐 있습니다 */처럼 작성합니다.

C++에서 //와 /* */의 차이는 무엇인가요?

//는 한 줄의 나머지를 주석 처리하므로 각 줄마다 하나씩 필요합니다. /* */는 블록 주석으로, /*에서 시작해 여러 줄에 걸쳐 있더라도 다음 */까지 이어집니다. 짧은 인라인 메모에는 //를, 텍스트나 코드 덩어리를 한 번에 비활성화할 때는 /* */를 사용하세요.

C++에서 주석을 중첩할 수 있나요?

아니요. 블록 주석(/* */)은 중첩되지 않습니다. 앞에 /*가 몇 개 있든 첫 번째 */가 주석을 닫습니다. 이미 블록 주석을 포함한 영역을 비활성화하려면 대신 각 줄에 //를 붙이세요(대부분의 편집기는 단축키 하나로 이 작업을 처리합니다).

Coddy programming languages illustration

Coddy로 코딩 배우기

시작하기