C++, 하나의 문자상수를 L'ab' 형태로 표현이 가능한것인가요?

gurumong의 이미지

C++을 배우고 있습니다 아직 몇페이지 나가지 못했는데요 ^^;
C++기초 플러스(4판) 책의 wchar_t 데이터형을 설명하는 부분에서 조금 의야스러운 부분이 있어서 질문을 올립니다

wchar_t bob = L'bp'; // 확장 문자 상수
wchar_t ken[3] = L"tall"; // 확장 문자 문자열

그 아래에 "2바이트 wchar_t형을 사용하는 시스템에서, 이 코드는 각 문자에 2바이트씩 할당하여 메모리에 저장한다"라고 되어있습니다

' '로 포현되는 문자상수안에 두개의 문자가 들어가는것이 이상해보이는데요
마찬가지로 문자열 상수도 두문자를 하나씩 묶고 널문자까지해서 array of 3 wchar_t로 선언되어있네요
C언어에서라면 분명히 문법을 어기는것으로 될테지만 C++에서는 이러한것을 허용하는것인가요?

여기에 도움 말씀좀 부탁드립니다 ㅜ.ㅜ

세벌의 이미지

C++ 뿐 아니라, C에도 있어요. google 에 wchar_t 검색해 보면 많이 나옵니다. :)
한 예만 들면
http://sonhy1.tistory.com/112

http://sebul.sarang.net/

chadr의 이미지

아무래도 책이 잘못된거 같습니다.

문자 상수는 1개밖에 못오는게 맞습니다. 저 코드를 vc2008에서 컴파일하니 아래와 같은 경고가 나옵니다.

warning C4066: 와이드 문자 상수에서 첫 문자 뒤의 문자는 무시됩니다.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

gurumong의 이미지

"C++ 기초 플러스"가 5판까지 나와있고 꽤 유명한 책인것으로 알고있는데
잘못된 내용을 포함하고 있다니 이상하네요 ㅜ.ㅜ
그동안 꽤나 많이 팔렸을텐데..

오자나 탈자가 아닌 완전히 잘못된 내용이라
책의 나머지 부분을 읽어야할지 망설여지네요;

제가 가진 책은 4판인데, 현재 5판이 판매되고 있는데
이것으로 바꾸어서 공부를 하는것이 좋을까요?
혹시 5판에도 이런 잘못된 내용이 고쳐지지 않고 그대로 있는것은 아니겠지요?

ㅜ.ㅜ

netionics의 이미지

비싼돈 들여가며 5판 사봤자 이득은 없을 겁니다.
이상하다 싶으면 질문 올리면서 보세요.
굳이 새로운 책을 사고 싶으시다면 accelerated c++이 얇고 괜찮습니다.

:)

죠커의 이미지

C++ Primer plus는 전혀 좋은 책이 아니라고 봅니다.

그런데 acclerated C++ 번역서의 품질이 썩 좋지 못하더군요. 원서를 보시는 것을 추천드립니다.

- 죠커's blog / HanIRC:#CN

cinsk의 이미지

C, C++ 할 것 없이 wide character 상수에서 하나 이상의 문자가 나올 수 있습니다. (책이 잘못된 것은 아닙니다.) 즉 L'ab' 이런 것이 가능합니다. 문법상으론 가능한데, 이럴 경우, 이게 wide character에서 어떤 식으로 해석될 지는 implementation-defined입니다. 따라서, 별로 쓰이지 않을 겁니다.

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.