ホーム/2004-10-30

ホーム/2004-10-30

こんなことができます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
 typedef float FVECTOR[4]; /* ps2でもこんなかんじ */
 typedef struct {
      float x;
      float y;
      float z;
 } fvec __attribute__((packed)); /* structのサイズが最小になる */
                                                                                 
 inline void print_vec(fvec *v) {
      printf("fvec has\nx:%f\ny:%f\nz:%f\n", v->x,v->y,v->z);
 }
 int main(){
      FVECTOR pos={1,2,3,1};
      fvec* vecpos = (fvec *)&pos; /* キャストしてみる */
      print_vec((fvec*)pos);
      vecpos->x=10.0;
      print_vec((fvec*)pos);
 }

危ない匂いはしますが。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy