Subj : Re: RP2350 and Pico 2 - things missing To : Ahem A Rivet's Shot From : Richard Kettlewell Date : Thu Aug 29 2024 16:13:42 Ahem A Rivet's Shot writes: > Richard Kettlewell wrote: >> Ahem A Rivet's Shot writes: >>> There are always the int_t types for when size matters. >> >> Life is not always that simple and declaring how things ‘should’ be >> does not fix a single line of code. > > Very true - horse, water, drink. > >> One of the public APIs we support largely uses ‘long’ and ‘unsigned >> long’ for integral values, which causes occasional issues with our >> cross-platform code. For example ‘unsigned long’ has the same size as >> ‘size_t’ on Linux, but not on 64-bit Windows. > > Which is why putting assigning the value of a size_t to an unsigned > long or vice-versa is wrong. No, it’s not necessarily wrong. If the value fits in the destination type there’s nothing wrong with it. The results are well-defined and do not change the value. You can look up the rules in the C standard. The common case (for users of this API) is passing the size of a relatively small object, of fixed size. There is no practical issue there. The less common case is where the value is unknown at compile time, meaning an extra check and an explicit conversion are needed. It’s not remotely difficult to deal with, it’s just an annoyance (as I previously wrote). -- https://www.greenend.org.uk/rjk/ --- SoupGate-Win32 v1.05 * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3) .