Re: C: kontrola vstupní hodnoty do procedury preprocesorem.

Josef Štengl ok1ced na nagano.cz
Úterý Červenec 10 10:09:21 CEST 2018


C preprocesor není zlo, jen je někdy nepěkně zneužíván. C dovoluje i ... nesprávné zápisy (*) a je v některých případech 
vyloženě nutný (například pokud je kód psaný pro více architektur. Bez preprocesoru by ty kódy musely být 2x. I hloupé 
povolení/zakázaní přerušení pro dva procesory je bez preprocesoru neřešitelné). Také si málokdo uvědomuje, že i #warning 
nemusí být přenositelný. Není v normě a některé překladače používají #warn a #warning neznají. Pomocí preprocesoru se to 
dá obejít.

Mimochodem assert se nedá vždy použít (není jak jinak hlásit problémy než tím, že se to prostě přestane fungovat).

Statické konstantní proměnné v knihovně jako volitelný parametr? Nemám představu, jak to myslíte.


* někdy i dávají v daném kontextu smysl. Problém je, že někdo píše stylem, jé to se mě líbí to použiji bez toho aby měl 
povědomí o tom, že řešení je platné jen pro omezenou skupinu problému a nelze je použít univerzálně.



On 9.7.2018 19:22, Ondrej wrote:
> Zdravím
> 
> 
> nemohlo by pár const statických "proměnných" a inline funkcí a assert udělat stejnou práci. A lépe. C preprocesor je zlo a 
> jeho použití nedává u modernách překladačů většinou moc smysl.
> 
> 
> O.
> 
> 
> Dne 9.7.2018 v 11:41 Miroslav Draxal napsal(a):
>>
>> Zdravím vespolek,
>>
>> Lze nějakým šikovným zápisem kontrolovat vstupní hodnotu procedury preprocesorem? Nic mě nějak nenapadá.
>>
>> #define AA 5
>>
>> #define BB 10
>>
>> UdelejNeco (A+10+B);
>>
>> Zkontrolovat preprocesorem, aby hodnota řekněme nebyla větší než 200.
>>
>> Díky za pomoc, Míra
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored bywww.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
> 
> 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 


Další informace o konferenci Hw-list