C preprocessor
Aravanis Konstantinos
kos.arav at gmail.com
Wed Nov 3 10:57:29 EET 2010
On Wednesday 03 November 2010 10:51:25 Aravanis Konstantinos wrote:
> Δε προλαβαίνω να το κοιτάξω παραπάνω αλλά μήπως το λάθος είναι κάπου στο
> while... (μπορεί να λέω βλακεία)
>
> Το λέω γιατί το παρακάτω μου τρέχει
>
> #include <stdio.h>
>
> #define fun(A,B) A.a = 5 + B.a; A.b = -5 + B.b;
>
> typedef struct
> {
> int a;
> int b;
> }mytype_t;
>
> void main(void)
> {
> mytype_t mpla, mplo = {6,7};
> fun(mpla, mplo);
> printf("A = <%d, %d>\nB = <%d, %d>\n", mpla.a, mpla.b, mplo.a, mplo.b);
> }
>
> Τα αποτελέσματα που παίρνω είναι
> A = <11, 2>
> B = <6, 7>
Για την ακρίβεια ο κώδικας είναι με διορθωμένο και το while... δλδ ένα
ερωτηματικό στο τέλος...
#include <stdio.h>
#define fun(A,B) \
do { \
A.a = 5 + B.a; \
A.b = -5 + B.b; \
}while(0);
typedef struct
{
int a;
int b;
}mytype_t;
void main(void)
{
mytype_t mpla, mplo = {6,7};
fun(mpla, mplo);
printf("A = <%d, %d>\nB = <%d, %d>\n", mpla.a, mpla.b, mplo.a, mplo.b);
}
--
Aravanis Konstantinos // sbosx
My site & blog: AravanisKostas.com
TasPython.eu ...because simplicity matters!
More information about the Linux-greek-users
mailing list