Преобразование одной структуры C в другую

У меня есть две идентичные (но по-разному названные) структуры C:

typedef struct {
      double x;
      double y;
      double z;
} CMAcceleration;


typedef struct {
    double x;
    double y;
    double z;   
} Vector3d;

Теперь я хочу назначить переменную CMAcceleration переменной Vector3d (копирование всей структуры). Как я могу это сделать?

Я пробовал следующее, но получаю следующие ошибки компилятора:

vector = acceleration;           // "incompatible type"
vector = (Vector3d)acceleration; // "conversion to non-scalar type requested"

Конечно, я могу прибегнуть к установке всех членов по отдельности:

vector.x = acceleration.x;
vector.y = acceleration.y;
vector.z = acceleration.z;

, но это кажется довольно неудобным.

Какое лучшее решение?

40
задан Ortwin Gentz 22 October 2010 в 10:29
поделиться