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