¿Qué es más rápido en C: estructuras o matrices?

Quiero implementar (lo que representa de manera abstracta) una matriz bidimensional de 4x4. Todo el código que escribo para la multiplicación de matrices, etcétera, estará completamente "desenrollado", es decir, no usaré bucles para acceder y escribir entradas de datos en la matriz.

Mi pregunta es: en C, ¿sería más rápido usar una estructura como tal:

typedef struct {
    double e0, e1, e2, e3, e4, ..., e15
} My4x4Matrix;

O sería esto más rápido:

typedef double My4x4Matrix[16];

Dado que accederé a cada elemento de la matriz individualmente como tal:

My4x4Matrix a,b,c;
// (Some initialization of a and b.)
...
c.e0=a.e0+b.e0;
c.e1=a.e1+b.e1;
...

O

My4x4Matrix a,b,c;
// (Some initialization of a and b.)
...
c[0]=a[0]+b[0];
c[1]=a[1]+b[1];
...

¿O son exactamente la misma velocidad?

Respuestas a la pregunta(4)

Su respuesta a la pregunta