[FFmpeg-devel] uint32_t arg and %X conversion specifier

Michael Niedermayer michaelni
Thu Jan 15 20:26:58 CET 2009


On Thu, Jan 15, 2009 at 06:39:25PM +0000, M?ns Rullg?rd wrote:
> Marc Mason <mpeg.blue at free.fr> writes:
> 
> > Michael Niedermayer wrote:
> >> Marc Mason wrote:
> >>> M?ns Rullg?rd wrote:
> >>>> Marc Mason wrote:
> >>>>
> >>>>> I see two ways to fix the following (very minor) warning.
> >>>>>
> >>>>> avidec.c:428: warning: format '%X' expects type 'unsigned int', but
> >>>>> argument 4 has type 'uint32_t'
> >>>>>
> >>>>> 1) cast the arg to unsigned long
> >>>>> http://home.att.net/~jackklein/c/inttypes.html#long
> >>>>> drawback : on platforms where long are 64-bits wide, this will push 4
> >>>>> useless ( == 0 ) octets
> >>>>
> >>>> One could cast to unsigned int too.
> >>>
> >>> I don't think so.
> >>>
> >>> Consider a platform where
> >>> sizeof(unsigned int)  = 16 bits
> >> isn't allowed by POSIX and our code wouldn't work there anyway.
> >
> > I was not aware of that. Thanks for bringing it to my attention.
> >
> > http://www.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
> >
> > {UINT_MAX}
> >     Maximum value for an object of type unsigned.
> >     [CX] Minimum Acceptable Value: 4 294 967 295
> >
> > Thus the first patch has a variant.
> 
> Both explicitly sized types and casts are things that should only be
> used when necessary.  Does the offending variable really need to be
> uint32_t in the first place?

no, it seems not, unsigend (int) should be fine

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The worst form of inequality is to try to make unequal things equal.
-- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090115/947ab9cf/attachment.pgp>



More information about the ffmpeg-devel mailing list