multi character literal에 대해서

C++ 에서 작은 따옴표( ' ' )에 대해 조사하다가(작은 따옴표 내에 문자열이 들어갈 경우, 숫자로 변하는 내용에 대해서 였습니다) http://hashcode.co.kr/questions/237/작은따옴표-안에-문자-여러-개를-쓰는-경우 에서 multi character literal 이라는 단어를 보게 되었는데요...해당 단어에 대한 설명을 찾기 힘들어 질문을 올립니다.

C++에서 multi character literal이 의미하는 것이 무엇인지, 어디서 사용하는 내용인지 알고 싶습니다.

2답변

  • 좋아요

    1

    싫어요
    채택취소하기

    C++14 표준 파일에 보니

    'abcde'
    

    이렇게 작은따옴표 사이에 char를 여러개 넣은걸 multicharacter literal이라고 하고 int타입이라고 한답니다. 그런데 그 값으로는 implementation-defined value.를 가진다고 하네요. 컴파일러마다 다른 값을 가질 수 이다는거겠져.

    test가 1952805748로 표시되는 것도 특정 컴파일러에서만 그렇게 동작하는것 같습니다.

    저런 기능을 왜 만들었는지는 모르겠지만 컴파일러마다 다른 값을 가질 수 있는 기능은 왠만하면 사용하지 않는게 좋을것 같습니다.

    • 말씀하신대로 값 자체에 의미를 두면 안되겠지만, 나열형(열거형,enum)의 의미로는 사용할 수 있지 않을까요? 다만 다른 소스에서 공유하게 되는(static library, shared library)에서는 가급적 피해야할 것 같네요. 허대영(Daeyoung Heo) 2016.6.10 20:20
  • IBM Knowledge Center - Character Literals에 해당 설명이 있습니다.

    A character literal contains a sequence of characters or escape sequences enclosed in single quotation mark symbols, for example 'c'. A character literal may be prefixed with the letter L, for example L'c'. A character literal without the L prefix is an ordinary character literal or a narrow character literal. A character literal with the L prefix is a wide character literal. An ordinary character literal that contains more than one character or escape sequence (excluding single quotes ('), backslashes () or new-line characters) is a multicharacter literal.

    C++A character literal that contains only one character has type char, which is an integral type. A multicharacter literal has type int.

    간략히 해석하면 character literal은 작은 따옴표로 둘러쌓인 여러개의 문자나 escape의 sequence입니다. C++에서 character literal은 char 타입이며, multicharacter literal은 int타입입니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.