fork(2) download
  1. #include <stdio.h>
  2.  
  3. typedef union
  4. {
  5. float x;
  6. float y;
  7. float z;
  8. float w;
  9. float val[4];
  10. } VERTEX4F;
  11.  
  12. int main() {
  13. VERTEX4F v;
  14. v.x = 0.5f;
  15. v.y = 0.5f;
  16. v.z = 0.5f;
  17. v.w = 0.5f;
  18. printf("Sizeof VERTEX4F is %d \n",sizeof(VERTEX4F)) ; //16 (4*4)
  19. printf("VERTEX4F component x is %f \n", v.x); //0,5
  20. printf("VERTEX4F component y is %f \n", v.y);//0,5
  21. printf("VERTEX4F component z is %f \n", v.z);//0,5
  22. printf("VERTEX4F component w is %f \n", v.w);//0,5
  23. for(int i = 0;i<4;i++)
  24. {
  25. printf("VERTEX4F component %d is %f \n",i, v.val[i]); //на первой итерации - 0,5, на остальных хуита.
  26. }
  27. return 0;
  28. }
  29.  
  30. //Чому так?
Success #stdin #stdout 0s 4316KB
stdin
Standard input is empty
stdout
Sizeof VERTEX4F is 16 
VERTEX4F component x is 0.500000 
VERTEX4F component y is 0.500000 
VERTEX4F component z is 0.500000 
VERTEX4F component w is 0.500000 
VERTEX4F component 0 is 0.500000 
VERTEX4F component 1 is 0.000000 
VERTEX4F component 2 is 0.000000 
VERTEX4F component 3 is 0.000000