<html><head><title>Re: C: #define, XC8</title>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
</head>
<body>
<span style=" font-family:'Courier New'; font-size: 10pt;">inline funkce je taková která se nevolá CALLem, ale místo toho se rozvine místo toho volání. V praxi pak máte tutéž funkci implementovanou na mnoho místech.<br>
Ve Vašem případě pokud byste volal příslušnou rozhodovací funkci s konstantním parametrem, optimalizátor pozná že podmínka je konstantní a nevyužitý kód vyhází pryč.<br>
<br>
Tedy rozhodování zda se zavolá uint8_t či uint16_t verze se ponechá na optimalizátoru. Je možné že bude generovat warningy že se rozhodujete podle konstantího výrazu.<br>
<br>
Tomáš<br>
<br>
<br>
<br>
<span style=" color: #800000;"><b>> Můžeme to trochu rozvést? <br>
> Mám dvě funkce, které provádějí totéž, jedna ovšem s uint8_t a druhá s uint16_t.<br>
> Čili<br>
> void xx1(uint8_t);<br>
> void xx2(uint16_t);<br>
> Chtěl jsem, aby preprocesor si podle hodnoty při volání funkce sám rozhodl, kterou funkci použije.<br>
<br>
> Jak jste to myslel s tím static inline?<br>
> Musím se přiznat, že o tom inline jsem slyšel poprvé. Ale co jsem<br>
> se o tom přečetl v pdf k XC8, tak podle mě to můj problém neřeší.<br>
> Míra<br>
<br>
> -----Original Message-----<br>
> From: Hw-list [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Jan Waclawek<br>
> Sent: Thursday, June 14, 2018 9:14 PM<br>
> To: HW-news<br>
> Subject: Re: C: #define, XC8<br>
<br>
> Nie:<br>
> 1. ak to mate napisane tak, ako vidime, t.j. medzi jednotlivymi riadkami je<br>
> prazdny riadok, tak tie spatne lomitka su neucinne - tie "zozeru" vzdy len<br>
> jedno zariadkovanie<br>
> 2. ak tam tie prazdne riadky nemate, tak v 2. faze prekladu (C99 5.1.1.2)<br>
> sa vyhadzu spatne lomitka na konci riadkov a pripoja sa k nim riadky za<br>
> nimi nasledujuce. Ale to znamena, ze vo faze 4, ked sa maju vykonavat tie<br>
> preprocesorove direktivy, tak to #if uz nie je preprocesorova direktiva,<br>
> lebo nie je na zaciatku riadku (6.10#2)<br>
<br>
> Ale nerobte si vrasky, napiste pokojne funkciu s tymto istym obsahom,<br>
> oznacte static inline, a kazdy slusny (a polovica tych neslusnych)<br>
> prekladac urobi to co chcete. <br>
<br>
> Ledazeby ste mali vypnutu optimalizaciu, co je blbost.<br>
<br>
> wek<br>
<br>
<br>
> ----- Original Message ---------------<br>
<br>
> Subject: C: #define, XC8<br>
>    From: "Miroslav Draxal" <</b></span></span><a style=" font-family:'courier new'; font-size: 10pt;" href="mailto:evik@volny.cz">evik@volny.cz</a><span style=" font-family:'courier new'; font-size: 10pt; color: #800000;"><b>><br>
>    Date: Thu, 14 Jun 2018 19:51:24 +0200<br>
>      To: "'HW-news'" <</b></span><a style=" font-family:'courier new'; font-size: 10pt;" href="mailto:hw-list@list.hw.cz">hw-list@list.hw.cz</a><span style=" font-family:'courier new'; font-size: 10pt; color: #800000;"><b>><br>
<br>
> Dobrý den,<br>
<br>
> Existuje nìjaká mo¾nost, rozchodit následující?<br>
<br>
>  <br>
<br>
> void delay_ms_uint16_t(uint16_t DelayTime);<br>
<br>
> void delay_ms_uint8_t(uint8_t DelayTime);<br>
<br>
>  <br>
<br>
> #    define delay_ms(DelayTime) \<br>
<br>
>         #if DelayTime < 256 \<br>
<br>
>             delay_ms_uint8_t(DelayTime) \<br>
<br>
>         #else \<br>
<br>
>             delay_ms_uint16_t(DelayTime) \<br>
<br>
>         #endif<br>
<br>
>  <br>
<br>
> Ztrozkotá to na  "illegal "#" directive" <br>
<br>
> Díky za nápady.<br>
<br>
> Míra<br>
<br>
<br>
> _______________________________________________<br>
> HW-list mailing list  -  sponsored by </b></span><a style=" font-family:'courier new'; font-size: 10pt;" href="http://www.HW.cz">www.HW.cz</a><br>
<a style=" font-family:'courier new'; font-size: 10pt;" href="mailto:hw-list@list.hw.cz">> Hw-list@list.hw.cz</a><br>
<a style=" font-family:'courier new'; font-size: 10pt;" href="http://list.hw.cz/mailman/listinfo/hw-list">> http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br>
<span style=" font-family:'courier new'; font-size: 10pt; color: #800000;"><b>> _______________________________________________<br>
> HW-list mailing list  -  sponsored by </b></span><a style=" font-family:'courier new'; font-size: 10pt;" href="http://www.HW.cz">www.HW.cz</a><br>
<a style=" font-family:'courier new'; font-size: 10pt;" href="mailto:hw-list@list.hw.cz">> Hw-list@list.hw.cz</a><br>
<a style=" font-family:'courier new'; font-size: 10pt;" href="http://list.hw.cz/mailman/listinfo/hw-list">> http://list.hw.cz/mailman/listinfo/hw-list</a></body></html>