익명 구조체 및 공용체로 C 코드 컴파일
익명 구조체 및 공용체로 C 코드를 컴파일하려면 활성화된 GNU C의 명명되지 않은 필드 확장 사용을 고려하세요. -fms-extensions 컴파일러를 통해 플래그.
구현:
<code class="c">typedef struct { union { struct { float x, y, z; }; float xyz[3]; }; } Vector3;</code>
편집:
<code class="sh">gcc -fms-extensions my_code.c</code>
용법:
<code class="c">Vector3 v; assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);</code>
설명:
-fms-extensions 플래그를 사용하면 구조체 및 공용체에서 명명되지 않은 필드를 사용할 수 있으므로 원래 질문에 설명된 대로 익명 구조체를 사용할 수 있습니다. 이 플래그를 사용하면 컴파일러는 공용체 내의 익명 구조체를 인식하고 구조체의 요소를 xyz 배열의 요소와 적절하게 연결합니다.
위 내용은 익명 구조체와 공용체를 사용하여 C 코드를 어떻게 컴파일할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!