Automaticke pretypovani u AVR-GCC

Miroslav Šinko sinkomiro@gmail.com
Středa Červenec 22 11:21:14 CEST 2009


2009/7/22 Tomáš Halabala <tomas.halabala@iol.cz>:
> Děkuji, jo toto je řešení, ale co mě na tom nejvíce zaráží je, jak jsem
> psal, že v jednom případě překladač tu trojku nerozšířil a v jiném místě
> programu s úplně stejným zápisem pouze s jinými názvy proměnných tu
> trojku převedl na int, což jak píšete odpovídá ANSI C. Ale proč to tedy
> dodržuje překladač podle nálady? To už asi zůstane nezodpovězeno.
> Odpovědí je zřejmě asi IAR.

Prekladac to dodrzi vzdy (pokial teda splna normu) z pohladu vysledku.
Je mozne, ze v jednom pripade rozpozna, ze aj bez konverzie z 8 na 16
bit bude vysledok vzdy spravny, v druhom pripade to rozpoznat nevie.
Ono tie vase priklady nie su uplne totozne, jeden pracuje so statickou
premennou definovanou externe, druhy s konstantnym parametrom funkcie.
Preklad tiez zavisi na optimalizacii, ked si ten moj kod prelozite bez
nej, prekladac poctivo na zasobniku vyhradi miesto pre lokalne
premenne valx.
Chcem tym povedat, ze prekladac zaruci funkcnost, ale nie pouzite
sekvencie instrukcii. Rovnako sa moze stat, ze dalsia verzia GCC bude
uvedene C zapisy prekladat uplne inac...

> Použil jsem C, protože se jedná o velmi rozsáhlý program a samozřejmě ty
> nejkritičtější části jsou psané v assembleru. Administrativní část je v
> C s tím, že neustále kontroluji efektivnost překladu. Slibuji si od toho
> přece jen snadnější přenositelnost na jiné MCU a CPU, což je také
> směrodatné.

OK, kde ma vyznam C, je jeho pouzitie v poriadku.

miro



Další informace o konferenci Hw-list