C / C++ 주석(Comment)_//_///_/**_/***
- Coding / C언어
- 2021. 1. 10. 21:36
1. 개요
다른 사람이 작성한 코드를 보고 프로그램의 구조를 파악할 때 주석이 없다면 굉장히 힘든 작업이 될 것입니다.
또한 과거 자신이 작성한 코드도 주석이 없다면 구조를 파악하기 힘듭니다.
이러한 이유로 주석을 달아놓는 작업이 귀찮다고 생략을 하거나 대충 하게 되면, 주석을 작성하는데 소요되는 시간보다 더 큰 시간을 미래에 사용하게 될 가능성이 커집니다.
작성자는 주석을 미래의 나와 동료에게 보내는 편지라 생각하며, 과거 귀찮아서 생략한 주석들 덕분에 며칠 고생을 하고 본 포스팅을 작성합니다.
본 포스팅의 개요 부분을 읽는 개발자분들은 적절한 주석의 중요성을 한번 더 상기한다면, 미래의 나와 협업하는 동료를 위한 개발자로 한층 더 거듭날 수 있을 것이라 생각합니다.
주석은 개발자가 작성한 코드에 설명을 추가한 부분으로, 컴파일에서 주석으로 표기된 부분은 무시하고 컴파일 됩니다.
실제 코드 실행에 영향을 주지 않으며, 형식에 맞게 작성된 주석을 작성하면 Doxygen 등의 코드 문서화 프로그램을 통해 코드를 문서화 가능합니다.
2. C 와 C++ 주석 문자열 종류
한 줄 주석 //
//주석
가장 많이 사용하는 주석으로, "//" 이후 같은 줄에 있는 문자열은 모두 주석 처리됩니다.
여러 줄 주석 /* */
/*
주석
*/
가장 많이 사용하는 주석이며, "/*"와 "*/" 사이에 문자열 모두 주석 처리됩니다.
여러줄 주석 // \
//주석 \
주석 \
주석
한 줄 주석 이후 "\" 문자열을 넣어주면 그다음 문자열도 주석 처리됩니다.
여러 줄 주석 #if 0 #endif
#if 0
주석
#endif
전처리기를 이용하여 주석과 같은 기능을 구현한 예제입니다.
"if 0" 부분을 "if 1"로 바꾸어 주면 주석 처리가 해제됩니다.
3. 주석 예제 코드
/*********************************************************
Heisanbug Comment Test
2021.01.10
1.0.0 ver
Alta software developer
**********************************************************/
#include <stdio.h>
int main(void) {
//Comment
/* Comment */
/*
Comment
*/
// Comment \
Comment
#if 0
Comment
#endif
#if 1
printf(/* Comment */"Hello World!!\n"/* Comment */);
return 0;
#endif
}
예제 코드입니다.
실행하면, 'Comment' 텍스트는 주석처리되어서 컴파일에서 제외됩니다.

4. Visual Studio 주석 단축키
Visual Studio를 사용한다면 선택 범위를 주석화 하는 유용한 단축키가 있습니다.
범위 선택 이후 "Ctrl + K", "Ctrl + C"를 차례로 누르면 선택 범위가 주석화 됩니다.
범위 선택 이후 "Ctrl + K", "Ctrl + U"를 차례로 누르면 선택 범위가 주석화 됩니다.
유용하게 사용되는 단축키로, 익혀두시면 좋습니다.


5. 기타
주석을 형식에 맞게 작성한다면, Doxygen을 사용하여 자동으로 코드를 문서화가 가능합니다.
추후 프로젝트의 규모에 따라 유용하게 사용이 가능하기 때문에,
자신의 주석 작성 스타일을 Doxygen 스타일에 맞게 연습한다면, 큰 도움이 될듯합니다.
Doxygen 주석 형식의 경우에는 아래의 사이트를 참고하시면 기본 형식을 익힐 수 있습니다.
[Doxygen] Doxygen 사용법, 예제
Doxygen 참고 https://www.stack.nl/~dimitri/doxygen/manual/index.html : doxygen 메뉴얼 http://www.slideshare.net/arload/doxygen-33932243 : doxygen 사용법 테스트 환경 - ubuntu14.04 lts - php 테스트 코..
onecellboy.tistory.com
PS. "주석을 달아야 하나?" 에 대한 이슈가 개발자마다 조금씩 다른 견해를 보입니다.
X. 참고 사이트
jacking75.github.io/VS_tips01/
zetawiki.com/wiki/C,_C++_%EC%A3%BC%EC%84%9D
google.github.io/styleguide/cppguide.html