수색…


비고

리터럴 이라는 용어는 일반적으로 숫자 (예 : 0 ) 또는 문자열 (예 : "C" )과 같은 상수 값을 지정하는 C 코드의 문자 시퀀스를 설명하는 데 사용됩니다. 엄밀히 말하면, 표준 문자열 리터럴 '문자'라는 용어를 예약, 정수 상수, 부동 상수, 열거 상수와 문자 상수에 대한 용어 상수를 사용하지만, 이것은 일반적으로 사용되지 않습니다.

리터럴은 기본 유형이나 표현을 변경하기 위해 리터럴을 시작하거나 종료 할 수있는 추가 문자 인 접두사 또는 접미어 (둘 다는 아님)를 가질 수 있습니다.

정수 리터럴

정수 리터럴은 정수 값을 제공하는 데 사용됩니다. 접두어로 표시되는 세 개의 숫자 기반이 지원됩니다.

베이스 접두사
소수 없음 5
8 진법 0 0345
16 진수 0x 또는 0X 0x12AB , 0X12AB , 0x12ab , 0x12Ab

이 글에는 부호가 없으므로 정수 리터럴은 항상 양수입니다. -1 과 같은 것은 하나의 정수 리터럴 ( 1 )이있는 표현식으로 취급됩니다.이 표현식은 -

십진 정수 리터럴의 유형은 intlong 의 값에 들어갈 수있는 첫 번째 데이터 유형입니다. C99 이후, 매우 긴 리터럴의 경우 long long 도 지원됩니다.

8 진 또는 16 진 정수 리터럴의 유형은 int , unsigned , longunsigned long 의 값에 들어갈 수있는 첫 번째 데이터 유형입니다. C99 이후, long longunsigned long long 은 매우 큰 리터럴에서도 지원됩니다.

다양한 접미어를 사용하여 리터럴의 기본 유형을 변경할 수 있습니다.

접미사 설명
L , l long int
LL , ll (C99 이후) long long int
U , u unsigned

U 및 L / LL 접미사는 어떤 순서로나 조합하여 사용할 수 있습니다. 다른 사례가 있더라도 접미사를 중복 (예 : 두 개의 U 접미사를 제공)하는 것은 오류입니다.

문자열 리터럴

문자열 리터럴은 문자 배열을 지정하는 데 사용됩니다. 그것들은 큰 따옴표로 묶인 문자의 연속입니다 (예 : "abcd"char* 유형).

L 접두어는 리터럴을 wchar_t* 유형의 와이드 문자 배열로 만듭니다. 예 : L"abcd" .

C11 이후에는 L 과 비슷한 다른 인코딩 접두어가 있습니다.

접두사 기본 유형 부호화
없음 char 플랫폼 의존
L wchar_t 플랫폼 의존
u8 char UTF-8
u char16_t 보통 UTF-16
U char32_t 보통 UTF-32

후자의 두 경우에는 인코딩이 효과적으로 해당 UTF 인코딩 인 경우 기능 테스트 매크로를 쿼리 할 수 ​​있습니다.

부동 소수점 리터럴

부동 소수점 리터럴은 부호있는 실수를 나타내는 데 사용됩니다. 다음 접미사를 사용하여 리터럴 유형을 지정할 수 있습니다.

접미사 유형 예제들
없음 double 3.1415926 -3E6
f , F float 3.1415926f 2.1E-6F
l , L long double 3.1415926L 1E126L

이러한 접미어를 사용하려면 리터럴이 부동 소수점 리터럴 이어야합니다 . 예를 들어 3f 는 오류이므로 3 은 정수 리터럴이고 3.f 또는 3.0f 는 올바른 값입니다. long double 의 경우 가독성을 위해 항상 자본 L 을 사용하는 것이 좋습니다.

문자 리터럴

문자 리터럴은 한 문자를 나타내는 데 사용되는 특수한 유형의 정수 리터럴입니다. 그것들은 작은 따옴표 (예 : 'a' 로 묶여 있고 int 유형입니다. 리터럴의 값은 시스템의 문자 집합에 따른 정수 값입니다. 그들은 접미사를 허용하지 않습니다.

문자 리터럴 앞에있는 L 접두사는 wchar_t 유형의 와이드 문자로 만듭니다. 마찬가지로 C11의 uU 접두어는 각각 char16_tchar32_t 타입의 넓은 문자를 char16_t .

특수 문자 (예 : 인쇄되지 않는 문자)를 나타내려는 경우 이스케이프 시퀀스가 ​​사용됩니다. 이스케이프 시퀀스는 다른 문자로 변환되는 문자 시퀀스를 사용합니다. 모든 이스케이프 시퀀스는 두 개 이상의 문자로 구성되며, 첫 번째 문자는 백 슬래시 \ 입니다. 백 슬래시 바로 뒤에 오는 문자는 시퀀스가 ​​해석되는 문자 리터럴을 결정합니다.

이스케이프 시퀀스 대표 캐릭터
\b 역행 키이
\f 양식 공급
\n 줄 바꿈 (줄 바꿈)
\r 캐리지 리턴
\t 가로 탭
\v 세로 탭
\\ 백 슬래시
\' 작은 따옴표
\" 큰 따옴표
\? 물음표
\nnn 8 진수 값
\xnn ... 16 진수 값
C89
이스케이프 시퀀스 대표 캐릭터
\a 알림 (삐, 벨)
C99
이스케이프 시퀀스 대표 캐릭터
\unnnn 범용 문자 이름
\Unnnnnnnn 범용 문자 이름

유니버설 문자 이름은 유니 코드 코드 포인트입니다. 범용 문자 이름은 둘 이상의 문자에 매핑 될 수 있습니다. 숫자 n 은 16 진수로 해석됩니다. 사용중인 UTF 인코딩에 따라 범용 문자 이름 시퀀스를 사용하면 하나의 일반 char 문자 대신 여러 문자로 구성된 코드 포인트가 생성 될 수 있습니다.

텍스트 모드 I / O에서 라인 피드 이스케이프 시퀀스를 사용하면 OS 관련 뉴 라인 바이트 또는 바이트 시퀀스로 변환됩니다.

물음표 이스케이프 시퀀스는 삼각 그래프 를 피하기 위해 사용됩니다. 예를 들어, ??/ 는 백 슬래시 문자 '\' 나타내는 트라이 그래프로 컴파일되지만 ?\?/ 사용하면 문자열이 "??/" 됩니다.

8 진수 값 이스케이프 시퀀스에는 1, 2 또는 3 개의 8 진수 숫자 n 이있을 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow