Práce s makry
Napište programový modul skládající se ze souborů „makra.c“ a „makra.h“, kde budou realizována makra pro určení minimální hodnoty ze tří prvků. Demonstrační program (s funkcí main) koncipujte tak, aby při zvolení modu ladění (pomocí define podmíněného překladu) vypisoval hodnoty, jinak aby nevypisoval nic. Funkce min musí být použitelná v následujících situacích (tuto část vložte do funkce main)
min(1,2,1);
min (PI,1.3,4);
min (2+2,3,1) ;
3*min(2.2,4.5,10)*7;
if (min(2,3,1)>2) a = min(2,3,1); else b = min(2,c,2PI); …
Upřesnění zadání:
Pro demonstraci činnosti a použití maker napište druhý modul (s funkcí main, *.c).
Napište a vyzkoušejte si makro pro zjednodušení zápisu (konstantní) proměnné PI a 2PI (která využije definice PI). Konstantu PI zadejte na 7 desetinných míst. Následně ukažte použití těchto konstant ve funkcích pro výpočet minima (viz výše).
Napište makro (s parametry, umožňující „funkční“ volání) min, pro zjištění minimální hodnoty ze tří čísel, tak aby fungovalo jako funkce. (Spíše než if použijte ternární operátor).
Vyzkoušejte si makro pro řízený (podmíněný) překlad. Nadefinujte symbol TEST. V případě, že bude TEST nadefinován, bude main zobrazovat/tisknout na konzolu trojici vstupních hodnot a hodnotu výslednou. V případě, že TEST nebude aktivní, k tisku nedojde .
(Do projektu neuvádějte, ale zkuste si ozřejmit, jaký je rozdíl mezi makrem a funkcí v oblasti realizace a použití. Jaký rozdíl je mezi interpretací ze strany překladače, zkuste změnit makra na funkce a uvědomte si změnu).
Pozn.: Zvolený název funkce min nemusí být ideální pro některou kombinaci načítaných systémových hlavičkových souborů. Název min je zvolen špatně z toho důvodu, že je to jméno často používané, a je používáno i v systémových knihovnách. Toto vícenásobné použití může vést ke kolizím mezi názvy. V tom případě je lepší název (vámi vytvářené) funkce zvolit jinak (například mini, ...).
Poslední úpravy 2008-09-29