summaryrefslogtreecommitdiff
path: root/3/11_floating_point/01_fcvt.c
blob: a75ff48f82e8f7fc0ddaf595de677ff758c87354 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
double fcvt(int i, float *fp, double *dp, long *lp) {
    float f = *fp; double d = *dp; long l = *lp;
    *lp = (long)    d; // double->long
    *fp = (float)   i; // int->float
    *dp = (double)  l; // long->double
    return (double) f; // float->double
}

int main(void) {
    float f = 0.5f; double d = 1.0; long l = 1;

    float *fp = &f; double *dp = &d; long *lp = &l;

    fcvt(42, fp, dp, lp);
    return 0;
}