Przykład użytecznego makro, dla początkujących
Ostatnio jak pisałem na temat zamiany dwóch liczb, pokazałem i opisałem makro SWAP, które może odstraszać ludzi którzy zaczynają w C. A przecież makra są ważnym elementem języka C.
Dzisiaj przedstawię makro które wypisuje za pomocą printf:
nazwa_zmiennej = wartość_zmiennej
Proste. Moje rozwiązanie problemu wygląda tak:
#define PVAR(p,v)
printf("%s = " p "n" ,#v,v)
/* Sposób użycia */
int a=42;
float b=3.64521;
char c = 'c';
char* d = "abcdef";
PVAR("%d",a);
PVAR("%.2f",b);
PVAR("%c",c);
PVAR("%s",d);
/*Wynik działania*/
a = 42
b = 3.65
c = c
d = abcdef
#define określa punkt zaczęcia się makra. Po spacji następuje nazwa makra, u mnie PVAR, potem nawiasach p i v określają nazwy paramentów makra. Następnie występuje backslash ’’ który powoduje że można makro napisać w dwóch liniach.
Pierwszy argument printf wygląda tak: „%s = ” p „n”
- %s – jest miejscem wypisania nazwy zmiennej
- p – jest to pierwszy parametr wpisany do makra, jako że jest łańcuchem sam się połączy z łańcuchami sąsiadującymi.
Ostatnimi argumentami funkcji printf są:
- #v – v to drugi argument makra który jest zmienną. Podanie # przed v powoduje, że to co zostało podane w jako v jest umieszczone w cudzysłowie. Wartość #v jest umieszczone w miejsce %s
- v – v to drugi argument makra który jest zmienną. Jest dopasowany do punktu podanego w p