>백엔드 개발 >C++ >익명 구조체와 공용체를 사용하여 C 코드를 어떻게 컴파일할 수 있나요?

익명 구조체와 공용체를 사용하여 C 코드를 어떻게 컴파일할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 09:46:02823검색

How can I compile C code using anonymous structs and unions?

익명 구조체 및 공용체로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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