#include <stdio.h>
typedef union
{
struct {
float x;
float y;
float z;
float w;
};
float val[4];
} VERTEX4F;
int main() {
VERTEX4F v;
v.x = 0.1f;
v.y = 0.2f;
v.z = 0.3f;
v.w = 0.4f;
printf("Sizeof VERTEX4F is %d \n",sizeof(VERTEX4F)) ; //16 (4*4)
printf("VERTEX4F component x is %f \n", v.x); //0,5
printf("VERTEX4F component y is %f \n", v.y);//0,5
printf("VERTEX4F component z is %f \n", v.z);//0,5
printf("VERTEX4F component w is %f \n", v.w);//0,5
for(int i = 0;i<4;i++)
{
printf("VERTEX4F component %d is %f \n",i, v.val[i]); //на первой итерации - 0,5, на остальных хуита.
}
return 0;
}
//Чому так?
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHVuaW9uIAp7CiAgICBzdHJ1Y3QgewogICAgZmxvYXQgeDsKICAgIGZsb2F0IHk7CiAgICBmbG9hdCB6OwogICAgZmxvYXQgdzsKICAgIH07CiAgICBmbG9hdCB2YWxbNF07Cn0gVkVSVEVYNEY7CgppbnQgbWFpbigpIHsKCVZFUlRFWDRGIHY7Cgl2LnggPSAwLjFmOwoJdi55ID0gMC4yZjsKCXYueiA9IDAuM2Y7Cgl2LncgPSAwLjRmOwoJcHJpbnRmKCJTaXplb2YgVkVSVEVYNEYgaXMgJWQgXG4iLHNpemVvZihWRVJURVg0RikpIDsgIC8vMTYgKDQqNCkKCXByaW50ZigiVkVSVEVYNEYgY29tcG9uZW50IHggaXMgJWYgXG4iLCB2LngpOyAvLzAsNQoJcHJpbnRmKCJWRVJURVg0RiBjb21wb25lbnQgeSBpcyAlZiBcbiIsIHYueSk7Ly8wLDUgCglwcmludGYoIlZFUlRFWDRGIGNvbXBvbmVudCB6IGlzICVmIFxuIiwgdi56KTsvLzAsNSAKCXByaW50ZigiVkVSVEVYNEYgY29tcG9uZW50IHcgaXMgJWYgXG4iLCB2LncpOy8vMCw1IAoJZm9yKGludCBpID0gMDtpPDQ7aSsrKQoJewoJICBwcmludGYoIlZFUlRFWDRGIGNvbXBvbmVudCAlZCBpcyAlZiBcbiIsaSwgdi52YWxbaV0pOyAvL9C90LAg0L/QtdGA0LLQvtC5INC40YLQtdGA0LDRhtC40LggLSAwLDUsINC90LAg0L7RgdGC0LDQu9GM0L3Ri9GFINGF0YPQuNGC0LAuCgl9CglyZXR1cm4gMDsKfQoKLy/Qp9C+0LzRgyDRgtCw0Lo/IA==