>백엔드 개발 >C++ >C에서 짧은 리터럴을 어떻게 작성합니까?

C에서 짧은 리터럴을 어떻게 작성합니까?

DDD
DDD원래의
2024-10-31 00:29:03687검색

How Do You Write Short Literals in C  ?

C에서 짧은 리터럴 작성

C에서는 int의 경우 2, int의 경우 2L, 2L과 같이 다양한 데이터 유형을 나타내는 데 여러 리터럴 표기법이 사용됩니다. 길게는 '2', 문자는 '2'입니다. 그러나 16비트 정수를 저장하는 짧은 리터럴을 어떻게 작성해야 하는지 불분명할 수 있습니다.

2S를 짧은 리터럴로 사용하려고 하면 문제가 분명해집니다. 이 표기법은 논리적으로 보일 수 있지만 컴파일러 경고가 발생합니다. 해결책은 형변환을 사용하여 정수를 short로 명시적으로 변환하는 것입니다.

C에서 짧은 리터럴을 작성하려면 다음 단계를 따르세요.

  1. 정수를 형변환하여 short: 정수 리터럴을 괄호로 묶고 short로 변환합니다. 예: (short)2

이 접근 방식은 엄밀히 말하면 짧은 리터럴은 아니지만 유사하게 동작합니다. C는 짧은 리터럴을 표현하는 직접적인 방법을 제공하지 않습니다.

이에도 불구하고 컴파일러는 int가 아닌 short에 메모리를 할당하도록 코드를 최적화합니다. 다음은 이 동작을 보여주는 예입니다.

<code class="cpp">int a = 2L;
double b = 2.0;
short c = (short)2;
char d = '';</code>

컴파일 및 디스어셈블 시 생성된 어셈블리 코드는 모든 변수가 올바른 유형인 것처럼 메모리가 할당되었음을 나타냅니다.

movl    , _a
movl    , _b
movl    , _c
movl    , _d

따라서 C에서 짧은 리터럴을 사용할 때 캐스팅의 비효율성에 대해 걱정할 필요가 없습니다.

위 내용은 C에서 짧은 리터럴을 어떻게 작성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.