1int ftoi(float f) {
2    return f;
3}
4
5int dtoi(double d) {
6    return d;
7}
8
9float itof(int i) {
10    return i;
11}
12
13double itod(int i) {
14    return i;
15}
16
17float f0, f1;
18double d0, d1;
19
20void testParseConsts() {
21    printf("Constants: %g %g %g %g %g %g %g %g %g\n", 0e1, 0E1, 0.f, .01f,
22          .01e0f, 1.0e-1, 1.0e1, 1.0e+1,
23          .1f);
24}
25void testVars(float arg0, float arg1, double arg2, double arg3) {
26    float local0, local1;
27    double local2, local3;
28    f0 = arg0;
29    f1 = arg1;
30    d0 = arg2;
31    d1 = arg3;
32    local0 = arg0;
33    local1 = arg1;
34    local2 = arg2;
35    local3 = arg3;
36    printf("globals: %g %g %g %g\n", f0, f1, d0, d1);
37    printf("args: %g %g %g %g\n", arg0, arg1, arg2, arg3);
38    printf("locals: %g %g %g %g\n", local0, local1, local2, local3);
39
40
41    printf("cast rval: %g %g\n", * (float*) & f1, * (double*) & d1);
42
43    * (float*) & f0 = 1.1f;
44    * (double*) & d0 = 3.3;
45    printf("cast lval: %g %g %g %g\n", f0, f1, d0, d1);
46}
47
48int main() {
49    testParseConsts();
50    printf("int: %d float: %g double: %g\n", 1, 2.2f, 3.3);
51    printf(" ftoi(1.4f)=%d\n", ftoi(1.4f));
52    printf(" dtoi(2.4)=%d\n", dtoi(2.4));
53    printf(" itof(3)=%g\n", itof(3));
54    printf(" itod(4)=%g\n", itod(4));
55    testVars(1.0f, 2.0f, 3.0, 4.0);
56    return 0;
57}
58