<html>
<head>
<meta content="text/html; charset=iso-8859-2"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Děkuji Vám za odpověď. <br>
<br>
Možná bude právě ta nejschůdnější cesta zajistit, aby byl kód
vskutku multiplatformní. Pak se na problém můžu dívat tak, že kód
který není multiplatformní je chybný a neměl by projít testy.<br>
<br>
Ona ta část kódu, kterou testuji není nijak vázána na konkrétní
platformu - nevyžaduje ani některé základní knihovny (
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-2">
stdio, stdlib). Žádná práce s řetězci, dynamická alokace,
vstup/výstup. Pouze holé výpočty a funkční volání, struct, enum,
statická pole. To je vše.<br>
<br>
Teď jen hádám - pro tenhle konkrétní případ by to asi znamenalo, že
vynutíme explicitní přetypování před každou numerickou konstantu v
kódu. Je to asi cesta do pekel, ale čistě teoreticky, možná by šlo
takové chování nastavit v gcc? Např. že překladač vypíše spoustu
paranoidních warningů pokaždé, když hrozí podobná chyba v číselných
výrazech (chybí přetypování před konstantou). <br>
<br>
Asi bych se měl spíše zaměřit tímto směrem, možná existují nějaké
nástroje které kontrolují, zda je C kód multiplatformní (nebo
alespoň upozorní na potenciální chyby).<br>
<br>
Přeji pěkný den,<br>
Ondra Staněk<br>
<br>
<div class="moz-cite-prefix">On 03/18/2015 12:41 PM, Jan Waclawek
wrote:<br>
</div>
<blockquote cite="mid:PC1952015031812412008105a40e73e@TEST-VISTA"
type="cite">
<blockquote type="cite">
<pre wrap="">vrtá mi hlavou jakým způsobem lze nastavit implicitní číselný datový typ
pro překladač GCC. Vysvětlím na příkladě:
</pre>
</blockquote>
<pre wrap="">
Nijakym.
Ja chapem Vasu motivaciu, ale je scestna z principu.
</pre>
<blockquote type="cite">
<pre wrap="">Mám multiplatformní C kód,
</pre>
</blockquote>
<pre wrap="">
Tak to teda nemate.
Ak ma byt multiplatformny, tak musi byt tak napisany explicitne, t.j. tam
to pretypovanie konstanty resp. zapis konstanty s explicitlne predpisanou
sirkou musite mat. Bodka.
</pre>
<blockquote type="cite">
<pre wrap="">(AVR). Kód je pokrytý automatickými testy (unit tests). Automatické
testování probíhá na PC, kvůli rychlosti a snadnému debugování.
</pre>
</blockquote>
<pre wrap="">
Chyba. Testuje sa zasadne na cielovej platforme a s takymi nastaveniami
prekladaca, ktore su zhodne s cielovym nastavenim. Bodka.
</pre>
<blockquote type="cite">
<pre wrap="">Emulátor není moľné při testech pouľít,
kód musí běľet nativně na PC (kvůli testovacímu frameworku a vazbám na
integrační testy).
</pre>
</blockquote>
<pre wrap="">
Zakladna chyba je potom v testovacom frameworku, zahodte ho, vymente ho,
prepiste ho.
Mimochodom, okrem emulatorov (resp. v pripade AVR s pravdepodobnostou
hraniciacou s istotou aj tak emulator nemate, mate OCD a nadvazujuce
nastroje) existuju aj simulatory; ale do toho by som ja osobne pre tento
pripad tiez nesiel.
Akakolvek ina odpoved Vas zavedie do bludneho kruhu, dajte si povedat.
wek
_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<br>
</body>
</html>