C++ 익명 구조체
Sheeraz Gul
2023년10월12일
이 자습서에서는 C++에서 익명 구조체를 사용하는 방법을 보여줍니다.
C++의 익명 구조체
익명 구조체는 C 언어에서도 지원되지 않았기 때문에 C++에서 지원되지 않지만 C++는 C와 달리 익명 공용체를 지원합니다. 구조체 및 공용체에 대한 ANSI C 및 C++ 표준에 따르면:
- ANSI C++ 익명 공용체: 지원됨
- ANSI C++ 익명 구조체: 지원되지 않음
- ANSI C 익명 공용체: 지원됨
- ANSI C 익명 구조체: 지원되지 않음
C++는 익명 구조체를 지원하지 않습니다. 왜냐하면 C는 호환성에 필요한 익명 구조체를 지원하지 않기 때문입니다. C++에서는 익명 구조체를 사용하지 않지만 몇 가지 대안을 제공합니다.
예를 들어 아래 코드를 참조하십시오.
struct DemoVector {
float v[3];
float &operator[](int x) { return v[x]; }
float &a() { return v[0]; }
float &b() { return v[1]; }
float &c() { return v[2]; }
};
위의 코드는 익명 구조체와 유사한 사용자 정의 유형에 대한 기능을 제공합니다. C++의 공용체를 사용하여 비슷한 작업을 수행할 수 있습니다.
아래 코드를 참조하십시오.
union DemoVector {
struct {
float a, b, c;
};
float v[3];
};
익명 구조체는 이제 ISO C11
, gcc
및 Apple의 llvm
에서 허용되지만 ISO C++11
에서는 지원되지 않습니다.
작가: Sheeraz Gul
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook