multi character literal에 대해서
조회수 2291회
C++ 에서 작은 따옴표( ' ' )에 대해 조사하다가(작은 따옴표 내에 문자열이 들어갈 경우, 숫자로 변하는 내용에 대해서 였습니다) http://hashcode.co.kr/questions/237/작은따옴표-안에-문자-여러-개를-쓰는-경우 에서 multi character literal 이라는 단어를 보게 되었는데요...해당 단어에 대한 설명을 찾기 힘들어 질문을 올립니다.
C++에서 multi character literal이 의미하는 것이 무엇인지, 어디서 사용하는 내용인지 알고 싶습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
C++14 표준 파일에 보니
'abcde'
이렇게 작은따옴표 사이에 char를 여러개 넣은걸 multicharacter literal이라고 하고 int타입이라고 한답니다. 그런데 그 값으로는
implementation-defined value.
를 가진다고 하네요. 컴파일러마다 다른 값을 가질 수 이다는거겠져.test
가 1952805748로 표시되는 것도 특정 컴파일러에서만 그렇게 동작하는것 같습니다.저런 기능을 왜 만들었는지는 모르겠지만 컴파일러마다 다른 값을 가질 수 있는 기능은 왠만하면 사용하지 않는게 좋을것 같습니다.
- 말씀하신대로 값 자체에 의미를 두면 안되겠지만, 나열형(열거형,enum)의 의미로는 사용할 수 있지 않을까요? 다만 다른 소스에서 공유하게 되는(static library, shared library)에서는 가급적 피해야할 것 같네요. 허대영(소프트웨어융합대학) 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타입입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력