C에서 짧은 리터럴 작성
C에서는 int의 경우 2, int의 경우 2L, 2L과 같이 다양한 데이터 유형을 나타내는 데 여러 리터럴 표기법이 사용됩니다. 길게는 '2', 문자는 '2'입니다. 그러나 16비트 정수를 저장하는 짧은 리터럴을 어떻게 작성해야 하는지 불분명할 수 있습니다.
2S를 짧은 리터럴로 사용하려고 하면 문제가 분명해집니다. 이 표기법은 논리적으로 보일 수 있지만 컴파일러 경고가 발생합니다. 해결책은 형변환을 사용하여 정수를 short로 명시적으로 변환하는 것입니다.
C에서 짧은 리터럴을 작성하려면 다음 단계를 따르세요.
이 접근 방식은 엄밀히 말하면 짧은 리터럴은 아니지만 유사하게 동작합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!