Co to znaczy?

0

Studiuje na PW i niedlugo mam miec kolokwium z C. Polega ono na napisaniu, co robi program po przeanalizowaniu kodu zrodlowego. Od wykladowcy dostalem kolsy z ubieglych lat i caly czas powtarza sie tam jedna rzecz ktorej w ogóle nie rozumiem:

#define PR(format, val) printf(" "#val"=%"#format",",(val))

i dalej w zrodle do tego sa przekazywane wartosci:
do format: -3d (to nie jest zmienna, wczesniej brak deklaracji);
do val: 0
Czy ktos moglby mi napisac, co robi ta linia; ona jest na 100% dobra-to kolos jest taki zamotany. :-P
Z gory dziekuje i pozdrawiam [hurra]

0
#define PR(format, val) printf(" "#val"=%"#format",",(val))

To jest nic innego jak definicja makra. Za każdym razem jak wywolasz PR(-3d,0) to jabys wpisywal odpowiednio sformatowany text (#format,#val) i wartość (val):

printf(" 0=%-3d",0);

ta sama zasada, choc uproszczone, bez # :

#define tg(a) (sin(a)/cos(a))

// jak sie formatuje wyswietlane dane jest w helpie...

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