[C puzzle book] types

#include <stdio.h>
#define PRINT(format,x) printf("x = %"#format"\n",(x))
//how to add the # ????
int integer = 5;
char character = '5';
char *string = "5";

int main(void)
{
    PRINT(d,string); PRINT(d,character); PRINT(d,integer);
    PRINT(d,string); PRINT(c,character); PRINT(c,integer=53);
    PRINT(d,('5'>5));
    {
        int sx = -8;
        unsigned ux = -8;
        PRINT(o, sx); PRINT(o, ux);
        PRINT(o, sx>>3); PRINT(o, ux>>3);
        PRINT(d, sx>>3); PRINT(d, ux>>3);

    }

}
#include <stdio.h>

#define PR(x) printf(#x" = %.8g\t",(double)x)
#define NL putchar('\n')
#define PRINT4(x1,x2,x3,x4) PR(x1); PR(x2); PR(x3); PR(x4); NL

int main(void)
{
    double d;
    float f;
    long l;
    int i;
    i = l = f = d = 100/3; PRINT4(i,l,f,d);
    d = f = l = i = 100/3; PRINT4(i,l,f,d);
    i = l = f = d = 100/3; PRINT4(i,l,f,d);
    d = f = l = i = (double)100/3;
    PRINT4(i,l,f,d);
    i = l = f = d = (double)(100000/3);
    PRINT4(i,l,f,d);
    d = f = l = i = 100000/3;
    PRINT4(i,l,f,d);


}
#include <stdio.h>
#define PR(x) printf(#x" = %g\t",(double)(x))
#define NL putchar('\n')
#define PRINT1(x1) PR(x1); NL
#define PRINT2(x1,x2) PR(x1); PRINT1(x2);

int main(void)
{
    double d=3.2,x;
    int i=2, y;
    x = (x=d/i)*2; PRINT2(x,y);
    y = (x=d/i)*2; PRINT2(x,y);
    x = d*(x=2.5/d); PRINT1(y);
    x = d*(y=((int)2.9+1.1)/d); PRINT2(x,y);
}
原文地址:https://www.cnblogs.com/abacuspix/p/2630070.html