C preprocessor

Christos Ricudis ricudis at komodino.itc.auth.gr
Wed Nov 3 10:48:44 EET 2010


On 11/03/10 10:10, Christos Houtouridis wrote:

>> #define fun(A,B)              \
>>    do{                        \
>>       A##.a = 5 + B##.a;      \
>>       A##.b = -5 + B##.b;     \
>>    }while (0)



#include <stdio.h>

typedef struct _aggouri {
        int mhkos;
        int diametros;
        int timh;
} aggouri_t;

typedef struct _poutsa {
        int mhkos;
        int diametros;
        int xrwma;
} poutsa_t;

#define enlarge(var,attribute,value)    \
   do{                                  \
        var.attribute += value;         \
   }while (0)

void main(void) {

        aggouri_t proion1;
        poutsa_t proion2;

        proion1.mhkos=32;
        proion2.mhkos=16;
        proion1.diametros=4;

        proion2.diametros=5;
        proion1.timh=58362;
        proion2.xrwma=0xFFFF00;


        enlarge(proion1,mhkos,5);
        enlarge(proion2,diametros,1);

        printf("p1.m=%d\n",proion1.mhkos);
        printf("p2.d=%d\n",proion2.diametros);
}


More information about the Linux-greek-users mailing list