<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>