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

Marc Mason mpeg.blue
Thu Jan 15 16:25:21 CET 2009


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.

-- 
Regards.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: avidec-cast-to-unsigned.diff
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090115/6d06ee53/attachment.asc>



More information about the ffmpeg-devel mailing list