c: modf (xc8 microchip)

Miroslav Draxal evik na volny.cz
Úterý Červenec 11 12:26:07 CEST 2023


#define		lroundl(x)	lroundf(x)

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)

double      		nan(const char *);

Je přímo z originál math.h

C standart 		C99

linker
 Size of double 	32bit
 Size of float	32bit

../../../Knihovny/PIC/DS18B20/DS18B20.c:308:55: warning: incompatible
pointer types passing 'double *' to parameter of type 'float *'
[-Wincompatible-pointer-types]
    f_val = modf(TeplotyCidel[CisloCidla].Teplota_Db, &i_val);
                                                      ^~~~~~
C:\Program Files\Microchip\xc8\v2.41\pic\include\c99\math.h:290:28: note:
expanded from macro 'modf'
#define         modf(x,y)       modff(x,y)
                                        ^
C:\Program Files\Microchip\xc8\v2.41\pic\include\c99\math.h:288:33: note:
passing argument to parameter here
float       modff(float, float *);
                                ^

V podstatě se to děje od verze XC8 v2.00
Míra



-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jan Waclawek
Sent: Tuesday, July 11, 2023 11:34 AM
To: HW-news
Subject: Re: c: modf (xc8 microchip)

>#define                modf(x,y)            modff(x,y)

Hm.

Pozrel som manual, a tam sa nic podobne nespomina (a podla vsetkeho ste
zobrali ten priklad priamo z toho manualu).

Nepouzivate nahodou  -fshort-double ?

wek


----- Original Message ---------------

Subject: c:  modf (xc8 microchip)
   From: "Miroslav Draxal" <evik na volny.cz>
   Date: Tue, 11 Jul 2023 11:12:50 +0200
     To: "'HW-news'" <hw-list na list.hw.cz>

>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.
>
> 
>
>Díky Míra
>

_______________________________________________
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