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

Marek Hummel marek.hummel na hwg.cz
Pondělí Červenec 9 21:50:15 CEST 2018


Dobry den,

A je velky problém provest kontrolu na urovni kodu ve funkci, tak jak je to obvykle. Co je důvodem zamysleneho reseni, uspora mista, rychlost nebo snaha realizovat prvni myslenku jak dany problém vyresit :).

Marek

From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jaroslav Buchta
Sent: Monday, July 9, 2018 9:29 PM
To: hw-list na list.hw.cz
Subject: Re: C: kontrola vstupní hodnoty do procedury preprocesorem.

Uz podruhe mne mate jak AA a BB prechazi na A a B - ale mozna jsem to jen nepochopil...
Obecne to IMHO nejde, protoze jako argument muzete predt treba UdelejNeco(*((uint32_t*)1234)); a preprocesor je v ...

Dne 09.07.2018 v 21:19 Miroslav Draxal napsal(a):
Rozvedu to:
#define AA 5
#define BB 10

#if A+10+B > 200
#             error "Cislo je moc velké"
#endif
UdelejNeco (A+10+B);

Sem míří moje otázka. UdelejNeco je procedura v knihovně. Volám jej několikrát z main. To #if bych rád v knihovně ne v main, a aby to vyhodnocoval preprocesor, ne program.
Snad je to popsáno správně.

From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jaroslav Buchta
Sent: Monday, July 09, 2018 8:19 PM
To: hw-list na list.hw.cz<mailto:hw-list na list.hw.cz>
Subject: Re: C: kontrola vstupní hodnoty do procedury preprocesorem.

Nevim jak to myslite, preprocesor je IMHO mocny nastroj jazyka C, ktery z nej prave dela idealni jazyk pro psani programu prenositelnych na ruzne platformy a pritom na nizke urovni.
Jen se musi pouzivat k ucelu, ke kteremu byl zamyslen...

Nechapu presne, co tazatel chce, jestli vyhodnoceni argumentu pro funkci ve fazi prekladu, tak bych sel cestou modifikace algoritmu, aby to nebylo potreba.

Dne 09.07.2018 v 19:22 Ondrej napsal(a):

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 by www.HW.cz<http://www.HW.cz>

Hw-list na list.hw.cz<mailto:Hw-list na list.hw.cz>

http://list.hw.cz/mailman/listinfo/hw-list






_______________________________________________

HW-list mailing list  -  sponsored by www.HW.cz<http://www.HW.cz>

Hw-list na list.hw.cz<mailto:Hw-list na list.hw.cz>

http://list.hw.cz/mailman/listinfo/hw-list






_______________________________________________

HW-list mailing list  -  sponsored by www.HW.cz<http://www.HW.cz>

Hw-list na list.hw.cz<mailto:Hw-list na list.hw.cz>

http://list.hw.cz/mailman/listinfo/hw-list


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20180709/9e1800fa/attachment.html>


Další informace o konferenci Hw-list