>백엔드 개발 >C++ >C에서 짧은 리터럴을 구현하는 방법은 무엇입니까?

C에서 짧은 리터럴을 구현하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 11:01:02919검색

How to Implement Short Literals in C  ?

C에서 정수를 짧은 리터럴로 캐스팅

C에서 특정 형식으로 정수 리터럴을 작성하면 해당 데이터 유형을 나타냅니다. 그러나 짧은 리터럴을 작성하는 것은 혼란스러워 보일 수 있습니다.

질문: 짧은 리터럴 구현

C에서 짧은 리터럴을 어떻게 작성할 수 있습니까? 기존 지식에는 다음이 포함됩니다.

  • 2: int
  • 2U: unsigned int
  • 2L: long
  • 2LL: long long
  • 2.0f: float
  • 2.0: double
  • '2': char

답: 정수 형변환

직접적인 짧은 리터럴 형식은 없지만 정수를 short로 캐스팅하면 원하는 동작이 제공됩니다.

<code class="cpp">((short)2)</code>

캐스팅 동작

리터럴이 아니더라도 , 캐스트는 추가 메모리를 명시적으로 할당하거나 불필요한 변환을 수행하지 않고 정수를 short로 강제 변환하여 유사한 동작을 보장합니다.

디스어셈블리 예

다음 코드를 고려하세요.

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

이 코드를 컴파일하고 디스어셈블하면 다음과 같은 결과가 나옵니다.

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

이는 컴파일러가 코드를 최적화하고 선언된 유형에 관계없이 모든 변수에 2를 저장한다는 것을 보여줍니다.

위 내용은 C에서 짧은 리터럴을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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