Jak poprawnie zadeklarować warunek w makrze?

0

Mam takie zadanie:

Napisz makro assert(warunek). Jesli zostalo zdefiniowane makro DEBUG,
wowczas makro powinno sprawdzic czy warunek jest spelniony. Jesli nie
jest on spełniony, wowczas program powinien wypisac na standardowe
wyjscie warunek oraz nazwe pliku i numer linii, a nastepnie przerwac
dzialanie. Jesli nie zostalo zdefiniowane makro DEBUG, to należy
zdefiniować makro assert(warunek), które nic nie robi.

kod:
a=5;
assert(a>10);

stdout:
asercja "a>10" nie jest spelniona. plik: main.c, linia: 10

Zrobiłem już wszystko, ale mam z jedną rzeczą problem, z warunkiem. Chociaż jest niespełniony, makro nic nie wypisuje, nie wiem cezmu :(

#define AAA

#if defined AAA
    #define asercja(warunek) { if(!warunek) printf("asercja ##warunek nie jest spelniona"); }
#endif

int main(int argc, char **argv)
{
    int a = 5;
    asercja(a>10);

    return 0;
}
0

Warunek nie jest spełniony: http://ideone.com/nE0rNv

0

ok dziala dzieki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1