Acceso a los miembros de la estructura como si fueran una sola matriz?

Tengo dos estructuras, con valores que deberían calcular un promedio ponderado, como esta versión simplificada:

typedef struct
{
  int v_move, v_read, v_suck, v_flush, v_nop, v_call;
} values;

typedef struct
{
  int qtt_move, qtt_read, qtt_suck, qtd_flush, qtd_nop, qtt_call;
} quantities;

Y luego los uso para calcular:

average = v_move*qtt_move + v_read*qtt_read + v_suck*qtt_suck + v_flush*qtd_flush + v_nop*qtd_nop + v_call*qtt_call;

Todos y cada uno de ellos necesito incluir otra variable. Ahora, por ejemplo, necesito incluirv_clean yqtt_clean. No puedo cambiar las estructuras a matrices:

typedef struct
{
    int v[6];
} values;
typedef struct
{
    int qtt[6];
} quantities;

Eso simplificaría mucho mi trabajo, pero son parte de una API que necesita que los nombres de las variables sean claros.

Entonces, estoy buscando una manera de acceder a los miembros de esas estructuras, tal vez usandosizeof(), por lo que puedo tratarlos como una matriz, pero aún así mantener la API inmutable. Se garantiza que todos los valores sonint, pero no puedo garantizar el tamaño de unaint.

Escribir la pregunta vino a mi mente ... ¿Puede ununion ¿Hacer el trabajo? ¿Hay otra forma inteligente de automatizar la tarea de agregar otro miembro?

Gracias, Beco

Respuestas a la pregunta(6)

Su respuesta a la pregunta