Pergunta

if (vector1.x > ((float*)&vector1)[j])

j simplesmente apenas um índice para o vetor?
por exemplo. é C ++ capaz de recuperar esses valores usando a notação de matriz embora vetor não é uma matriz?
Se assim for eu estou supondo que consegue isso fazendo referência a vector pelo seu endereço?

Foi útil?

Solução

O padrão C ++ diz que vazamento ponteiro um (vagens) do struct para um ponteiro do tipo de seu primeiro elemento irá produzir um ponteiro para seu primeiro elemento:

struct a {
    float a1;
    float a2;
    float a3;
};

a o1; ((float*)&o1); // points to o1.a1

Eu suspeito que o código disse o compilador não adicionar qualquer preenchimento entre A1, A2 e A3, de modo que se ele indexa o ponteiro, ele vai ponteiro exatamente à bóia que quer. Então acima

((float*)&o1)[1] // *would* return o1.a2

Essa plataforma dependente, como preenchimento não pode ser alterado no padrão C ++. Lookup como que organiza codificá-lo, e se eu estou certo em tudo:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top