aboutsummaryrefslogtreecommitdiff
path: root/gfsm/gfsm/src/libgfsm/tests/intfloat.c
blob: 098b860aeb354a25ec6850ad0b5fc68fb9f2d2a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>

#define ptr2int(p)   ((int)(p))
#define int2ptr(i)   ((void*)(i))
#define ptr2float(p) (*((float*)(&(p))))
#define int2float(i) (*((float*)(&(i))))

#define float2int(f) (*((int*)(&(f))))
#define float2ptr(f) (*((void**)(&(f))))

int main(void) {
 float f = 42.24;
 int  fi;
 void *fp;
 float fif, fpf;

 printf("f=%f\n", f);
 fi = float2int(f);
 printf("->fi=%d\n", fi);

 fif = int2float(fi);
 printf("-->fif=%f\n", fif);

 fp = float2ptr(f);
 printf("->fp=%p\n", fp);

 fpf=ptr2float(fp);
 printf("-->fpf=%f\n", fpf);

 return 0;
}