C에서 정수를 짧은 리터럴로 캐스팅
C에서 특정 형식으로 정수 리터럴을 작성하면 해당 데이터 유형을 나타냅니다. 그러나 짧은 리터럴을 작성하는 것은 혼란스러워 보일 수 있습니다.
질문: 짧은 리터럴 구현
C에서 짧은 리터럴을 어떻게 작성할 수 있습니까? 기존 지식에는 다음이 포함됩니다.
답: 정수 형변환
직접적인 짧은 리터럴 형식은 없지만 정수를 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!