Я хотел бы иметь возможность (если возможно) с помощью одной переменной получить доступ как к массиву, так и к элементам структуры.Самое близкое, что я получил, было следующее:
typedef union {
struct {
float x;
float y;
float z;
};
float getItem[3];
} Vector3D;
Однако, если что-то делается таким образом, каждый раз, когда я хочу получить доступ к переменной Vector3D
в виде массива, мне нужно сделать это следующим образом:
Vector3D vec;
vec.getItem[0] = 3.5f; //same as vec.x = 3.5f;
vec.getItem[1] = 8.4f; //same as vec.y = 8.4f;
vec.getItem[2] = vec.getItem[0] + vec.getItem[1]; //same as vec.z = vec.x + vec.y
Я хотел бы знать, есть ли какой-либо способ, с любой комбинацией typedef, структур, объединений и указателей (или с любым другим инструментом, который предоставляет C), использовать переменную как структуру и какуказатель на эту структуру, к которой можно обращаться как к массиву напрямую, например:
Vector3D vec;
vec[0] = 3.5f;
vec.y = 8.4f;
vec[2] = vec.x + vec[1];
Я встречал несколько решений для подобных проблем, таких как эта , но вна этот вопрос он предлагает создать другую переменную, которая является указателем на массив, тогда как я хотел бы получить доступ к массиву и структуре с одной и той же переменной, используя только одно объявление (как в моем примере).Есть ли способ сделать это?