Delka log.radku
Pavel Troller
patrol@sinus.cz
Pondělí Prosinec 29 12:18:02 CET 2008
> Tak prdlajs chyba u H_I-T_E_C_H. pokud se odstrani";", tak je vypocet
> OK.
> Ja to mel puvodne jako
> double CosZemeSirkaRadDb =.638324569;, pak to zmenil na #define ( proto
> ; na konci ) nervalo to, nevsiml jsem si.
> Ale ze jednou to vezme a podruhe ne, tak to mi hlava nebere. Zase jsem o
> něco chytrejsi. Vsem DIKY MIRA
>
Zdravím,
ale to je přeci samozřejmé, že se to takto chová :-).
#define je jen makro, které je ještě před překladem nahraženo tím rozvojem.
Ten rozvoj se přenese samozřejmě včetně toho středníku, čímž nekorektně ukončí
patřičný aritmetický výraz. Neřve to proto, že v C je to syntakticky v pořádku,
neboť sice tam vzniknou izolované výrazy, které nejsou nikam přiřazeny, ale
to normálnímu C nevadí - není zde povinnost přiřazovat výsledek operace do
nějaké proměnné, takže ten zbytek výrazu je jen takový "výkřik do tmy", který
se následně zahodí a nebo jej slušný kompilátor dokonce vyoptimalizuje, takže
tam vůbec nebude :-).
S pozdravem Pavel Troller
Další informace o konferenci Hw-list