문제

Visual Studio 2003을 사용하여 내 의견을 더 이상 댓글이되지 않도록 내 의견을 "댓글을 달았다"는 것을 알았습니다. 이것은 예가 필요합니다.

만약 내가 가지고 있다면:

/*
int commented_out = 0;
*/

/ *와 * / with //와 * /는 / *와 * /가 더 이상 "댓글을 달지 못했다"(텍스트가 비 코멘트 색상으로 변경 될 수 없습니다. 그리고 컴파일러는 다시 코드로 취급합니다). 그렇게 :

///*
int commented_out = 0;
//*/

이것이 MSVC 2003의 경우에 사실이라는 것을 알았습니다.이 정상적인 C ++ 동작입니까, 아니면이 컴파일러와 함께 작동하는 우연입니까?

도움이 되었습니까?

해결책

네, 이것은 완벽하게 정상적인 행동입니다. C ++ 표준은 다음을 말합니다 /* 주석 블록의 시작은 자체가 댓글을 달지 않은 경우에만 해당됩니다. 나는 종종 위에 쓴 내용을 사용하여 하나의 문자를 추가/삭제하여 코드 블록을 댓글을 달거나 무례합니다. 두 블록의 코드를 전환하기위한 멋진 작은 트릭은 다음 중 하나가 항상 다음과 같습니다.

//*
code block 1 (uncommented)
/*/
code block 2 (commented)
//*/

이제 처음부터 하나의 슬래시를 삭제하면

/*
code block 1 (commented)
/*/
code block 2 (uncommented)
//*/

프로덕션 코드에서 사용할 것이 아니라 빠른 디버깅 변경에 매우 유용합니다.

다른 팁

모든 컴파일러에서 작동해야합니다 // 입력 스트림에서 먼저 발생합니다.

나는 사용하는 경향이있다 #if 0 이런 종류의 물건을 위해 변경하십시오 #if 1 여기에 표시된 무결점 :

#if 0
    int commented_out = 0;
#endif

그런 다음 댓글 마커에 대해 전혀 걱정할 필요가 없습니다.

실제로 이것은 C 스타일 블록 주석으로 거의 모든 언어로 작동합니다.

/*
int foo = 0;
/*/
int foo = 1;
//*/

또는 심지어 XML 댓글

<!--->
a
<!-->
b
<!---->

불행히도 나는 Lua의 광선 서버 댓글에 공백을 그립니다.

--[[---------
---------]]--
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top