c: modf (xc8 microchip)
Miroslav Draxal
evik na volny.cz
Úterý Červenec 11 19:03:53 CEST 2023
No jo, mate pravdu, #undef jsem nepoužil asi 15 let, tak jsem na něj zapomněl.
#undef modf
f_val = modf(TeplotyCidel[CisloCidla].Teplota_Db, &i_val);
a vše proběhne OK.
Tak uvidíme, co na to překladač v budoucnosti.
Ono to chodilo i s tím varováním, ale nelíbilo se mi to. Honím v programu ducha, který jednou, nepravidelně, cca za 1 týden vyresetuje 18f2620. Má to přes 20 000 řádků a stále přibývá. Do smrti času dost. J
Díky Míra
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jindroush
Sent: Tuesday, July 11, 2023 2:32 PM
To: HW-news
Subject: Re: c: modf (xc8 microchip)
A kdyz po include math.h udelate #undef modf, tak to udela co, chybu linkeru (protoze modf(double,double&) neni vubec implementovano, nebo to projde?
J.
On 11.07.2023 11:12, Miroslav Draxal wrote:
Dobrý den,
Poprosím o radu.
V math.h překladače xc8(2.41) jsou definice.
double modf(double, double *);
float modff(float, float *);
long double modfl(long double, long double *);
#define modf(x,y) modff(x,y)
#define modfl(x,y) modff(x,y)
Pokud
double x, y, n;
x = 0.707;
y = modf(x, &n);
Tak to na mě řve
warning: incompatible pointer types passing 'double *' to parameter of type 'float *' [-Wincompatible-pointer-types]
Při překladu vezme z #def.
Přepsat tu originál
#define modf(x,y) modff(x,y)
Třeba na
#define _MODF(x,y) modff(x,y)
? Asi blbost…
--
Jindroush <mailto:jindroush na seznam.cz> <jindroush na seznam.cz>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230711/ec78279d/attachment.htm>
Další informace o konferenci Hw-list