> 백엔드 개발 > C++ > GCC를 사용하여 C에서 익명 구조체/공용체를 어떻게 컴파일할 수 있습니까?

GCC를 사용하여 C에서 익명 구조체/공용체를 어떻게 컴파일할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-10-31 21:20:29
원래의
878명이 탐색했습니다.

How Can I Compile Anonymous Structs/Unions in C with GCC?

익명 구조체/공용체를 사용하여 C 코드 컴파일

익명 구조체 및 공용체를 사용하면 별도의 구조체/공용체를 선언하지 않고도 유연한 데이터 구조를 사용할 수 있습니다. 유형. C에서는 중첩된 구조체와 공용체를 사용하여 익명 구조체/공용체를 만들 수 있습니다. 그러나 C는 이 기능을 직접 지원하지 않습니다.

GCC를 사용하여 C에서 유사한 기능을 구현하려면 -fms-extensions 플래그를 사용할 수 있습니다. 이 플래그는 익명 구조체/공용체 지원을 포함하여 Microsoft 스타일 확장을 활성화합니다.

예를 들어 다음 코드를 고려하세요.

<code class="c">typedef struct {
    union {
        struct {
            float x, y, z;
        };
        float xyz[3];
    };
} Vector3;</code>
로그인 후 복사

-fms-를 추가하여 Extensions 플래그를 사용하면 다음 명령을 사용하여 코드가 성공적으로 컴파일됩니다.

gcc -fms-extensions -c <source_file>.c
로그인 후 복사

이 확장을 사용하면 다음 코드와 같이 배열 멤버를 통해 익명 구조체 멤버에 액세스할 수 있습니다.

<code class="c">Vector3 v;
assert(&v.xyz[0] == &v.x);
assert(&v.xyz[1] == &v.y);
assert(&v.xyz[2] == &v.z);</code>
로그인 후 복사

위 내용은 GCC를 사용하여 C에서 익명 구조체/공용체를 어떻게 컴파일할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿