multi character literal에 대해서


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

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

  • 2016년 06월 10일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 06월 10일에 작성됨
    게임개발 지망생 입니다

조회수 219


2 답변


좋아요
1
싫어요
채택취소하기

C++14 표준 파일에 보니

'abcde'

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

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

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

  • 2016년 06월 10일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

  • 말씀하신대로 값 자체에 의미를 두면 안되겠지만, 나열형(열거형,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타입입니다.

  • 2016년 06월 10일에 작성됨
    시원한 날만 일하자

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close