O que é mais rápido em C: estruturas ou matrizes?

Eu quero implementar (o que representa abstratamente) uma matriz 4x4 bidimensional. Todo o código que eu escrever para multiplicação de matrizes, etc. será totalmente "desenrolado" - isto é, não usarei loops para acessar e gravar entradas de dados na matriz.

Minha pergunta é: Em C, seria mais rápido usar uma estrutura como esta:

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

Ou isso seria mais rápido:

typedef double My4x4Matrix[16];

Dado que acessarei cada elemento da 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;
...

Ou

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

Ou eles são exatamente a mesma velocidade?

questionAnswers(4)

yourAnswerToTheQuestion