[Ffmpeg-devel] [PATCH] Partial port of ffmpeg to MS Visual C - and a note on the inttypes.h issue

Måns Rullgård mans
Thu Feb 8 10:34:15 CET 2007


Yuri Vilmanis <yuri at isite3d.com> writes:

> Dave Dodge wrote:
>> On Thu, Jan 25, 2007 at 06:34:54PM +1030, Yuri Vilmanis wrote:
>>
>>> Incidentally, FFMpeg uses the following C99 features which are marked as
>>> broken or missing in gcc (see http://gcc.gnu.org/c99status.html) (these
>>> I noted off-hand - there may be others):
>>>
>> [...]
>>
>>>  - extended integer types - stdint.h is marked missing, inttypes.h is
>>> marked as having library issues (I gather this because it supplies the
>>> typdefs which are meant to be in stdint.h - feel free to correct me here)
>>>
>>
>> This has to do with _extended_ integer types, which would be
>> implementation-defined and wouldn't be used by any C99 code that was
>> supposed to be at all portable.  I'm not sure why it says these are
>> "missing" from stdint.h, since according to the 4.1.1 documentation
>> gcc doesn't support any extended integer types in the first place and
>> therefore there's nothing to be missed.
>>
>>                                                   -Dave Dodge
> If you take a look at the C99 standard, you'll find under the library
> summary (Annex B) that inttypes.h (Section B.7) is for "Format
> conversion of integer types" and defines macros for integer type
> conversions. stdint.h (Section B.7) is for "Integer types", and
> includes all the type definitions for extended integers, including all
> types of the form uintN_t and intN_t.

[...]

> On the upside, as inttypes.h is required to include stdint.h, client
> code including only inttypes.h still works as it should - hence why
> its not a big deal to the gcc devs. On the other hand, just cos it
> works don't mean it meets the standard; the standard clearly specifies
> that these typedefs belong in stdint.h, which does not exist in gcc
> (and gcc would tell you so if you tried to #include <stdint.h>).

What are you rambling about?  My gcc+glibc system has stdint.h, and
has had for as long as can remember.  Perhaps you should have another
look at your own system.

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list