I'm assuming temp.value i an `int`, as %d is used. The problem was probably that `1E6` is actually a `double` rather than an `int`, as the whole expression is promoted to `double`, because `bprintf` is (I assume) variadic, and the compiler does not know to change the cast the expression back to `int` because only the type of the first argument is specified in its declaration.
Regards, Mattias Andrée On Tue, 16 Jun 2020 20:42:08 +0200 Laslo Hunhold <d...@frign.de> wrote: > On Tue, 16 Jun 2020 17:55:03 +0000 > messw1thdbest <messw1thdb...@protonmail.ch> wrote: > > Dear messw1thdbest, > > > < return bprintf("%d", (temp.value - 273150000) / 1E6); > > --- > > > return bprintf("%d", (temp.value - 273150000)/1000000); > > I'm really intrigued by that; thanks for sending in this patch! What is > the origin of this problem? Does this have something to do with > guaranteed constant-sizes in Posix? > > With best regards > > Laslo Hunhold >