[Ffmpeg-devel] [PATCH] Partial port of ffmpeg to MS Visual C - and a note on the inttypes.h issue
Yuri Vilmanis
yuri
Mon Feb 12 01:22:49 CET 2007
Dave Dodge wrote:
> On Thu, Feb 08, 2007 at 05:18:13PM +1030, Yuri Vilmanis wrote:
>
>> 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
>>>
>
>
>> If you take a look at the C99 standard, you'll find under the library
>>
>
> [...explanation of inttypes.h and stdint.h deleted...]
>
>
>> I hope this answers your ... statement?
>>
>
> My point is that on the gcc C99 status page you quoted, the entry
> where you seem to think it's saying stdint.h is missing (and as I note
> above) has to do with EXTENDED integer types.
>
> The term "extended integer type" has a specific meaning in C99, which
> can be found in section 6.2.5. The types "signed char", "short int",
> "int", "long int", and "long long int" are not extended integer types,
> they are STANDARD integer types. An extended integer type would be
> some implementation-defined integer type that is not one of the
> standard types. For example if gcc provided a 1024-bit wide
> "__1024int" type, that would be an extended integer type. C99 allows
> such types to exist, and has several requirements for how they must
> behave if they are present in the implementation.
>
> If extended integer types do exist, then they indeed may be mentioned
> in stdint.h. For example there could be an int1024_t type that is
> typedef'd to __1024int. A more realistic example might be if the
> architecture has no native 32-bit type (there's more than one real
> system of that sort), but decides to provide an int32_t anyway by
> using an extended integer type.
>
> According to gcc's documentation (as of 4.1.1) it doesn't actually
> have any extended integer types. Therefore it is strange that the C99
> status page says these types are missing, because there aren't any
> such types to _be_ missing. Either the C99 status page is wrong, or
> the gcc documentation is wrong. And in either case it would have
> little to do with how ffmpeg uses stdint.h.
>
Got it. Maybe it just comes down to the status page maintainers taking a
'cautious' position...
Thanks,
Yuri
> -Dave Dodge
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list