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