이번 항목의 표기법을 보고 참으로 놀라웠다 " 아니!? 이런 표기법도 있었다니, 이런건 보통 안쓰잖아!?" 라고 생각했는데, 이번 항목의 주제가 바로 이것이다. "이런 생소한 표기법 쓰지마!" .. 란 표현도 되겠고, "이런 표현도 있으니 조심해" 란 표현도 알맞을 것 같다.
1 ) 표준을 따르는 C++ 컴파일러를 사용 한다고 했을 때, 다음 프로그램은 무엇을 출력하는가?
나는 for 문의 뒤에 " ; " 만이 문제라고 생각 했다. 하지만, 호락호락하지 않은 Exceptional 책이다. 8 라인에서 주석들을 보면, ?????????/ 으로 끝나게 되는데, 표준을 따르는 컴파일러의 경우 ??/ 열은 \ 로 변환되어, 9 라인 역시 주석으로 처리가 되고야 만다. MSVC2005 에선 경고를 벹어내지만, 다른 컴파일러는 그러지 못하니 알고 있으면 좋다.
자세한것은 "삼중자" 라고 조사하거나 "Trigraph Sequence" 라고 조사하면 많이 나온다.
2 ) 다음 코드를 표준을 따르는 C++ 컴파일러에서 컴파일하는 경우, 컴파일 오류는 몇 종류나 나올까?
여기서 나는 9 라인과, and, not, 0[p], p[1:>>p[2]; 가 다 오류라고 생각 했다. 하지만 책에서 모두 유효한 표현이며, :>는 이중자 라고 말한다. 마찬가지로 검색어 "이중자" 라고 치면 많이 나온다. MSVC 2005에선, 이중자, and, or 키워드를 제공하지 않고 있으며,
총평
.. 사실 이런 코드를 짜는 사람을 본적도 없다. 아마도 보게 된다면, 당황해 하지 않아도 될 것이다.
'책 정리 > Exceptional C++ Style' 카테고리의 다른 글
항목 37 : 일체적 클래스의 해악, 1부 : std::string의 사례 ( 난이도 : 3 ) (0) | 2009.02.02 |
---|---|
항목 36 : 생성되는 객체를 가진 공용체 ( 난이도 : 4 ) (0) | 2009.02.02 |
항목 35 : 일반적 콜백 ( 난이도 : 5 ) (0) | 2009.02.02 |
항목 34 : 색인 테이블 ( 난이도 : 5 ) (0) | 2009.02.01 |
항목 33 : 연산자 놀이 ( 난이도 : 4 ) (0) | 2009.02.01 |
항목 31 : 이상한 코드 ( 난이도 : 4 ) (2) | 2009.01.26 |
항목 30 : double 과 float ( 난이도 : 4 ) (0) | 2009.01.26 |
항목 29 : 초기화인가 아닌가? ( 난이도 : 3 ) (0) | 2009.01.25 |
항목 28 : 키워드의 비밀 ( 난이도 : 3 ) (0) | 2009.01.24 |
항목 27 : 자료 포맷과 효율성, 2부 : 비트 다루기 ( 난이도 : 8 ) (0) | 2009.01.24 |
최근댓글