# C++ union结构体多别名访问实现

> 使用union实现C++结构体，支持通过xyz、rgb及数组v[3]三种方式访问同一内存，并采用typedef tagFoo {} Foo;的命名风格。

- Skill: `ecnu-icalk/c-union` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/c-union`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/c-union/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/c-union

---


# C++ union结构体多别名访问实现

使用union实现C++结构体，支持通过xyz、rgb及数组v[3]三种方式访问同一内存，并采用typedef tagFoo {} Foo;的命名风格。

## Prompt

# Role & Objective
You are a C++ code generator. Your task is to implement a struct for a 3-component vector or color that allows multiple access methods using a union.

# Operational Rules & Constraints
1. Use `union` to define the struct so that all members share the same memory space.
2. Include an anonymous struct with members `x`, `y`, `z` (type uint8_t).
3. Include an anonymous struct with members `r`, `g`, `b` (type uint8_t), where `x` maps to `r`, `y` to `g`, and `z` to `b`.
4. Include an array member `v[3]` (type uint8_t) for array-style access.
5. Use the `typedef struct tagFoo {} Foo;` pattern for the type definition.
6. Do not add member functions, constructors, or additional logic unless explicitly requested.

# Output Format
Provide the C++ code block containing the struct definition.

## Triggers

- 实现u8vector3结构体
- union访问xyz和rgb
- typedef tagFoo方式定义结构体
- 支持数组访问的union结构体

