[Ffmpeg-devel] Matroska Patch
Fri Mar 24 19:58:56 CET 2006
Rich Felker <dalias at aerifal.cx> writes:
> On Fri, Mar 24, 2006 at 01:22:29AM +0000, M?ns Rullg?rd wrote:
>> Rich Felker <dalias at aerifal.cx> writes:
>> > On Thu, Mar 23, 2006 at 10:10:35AM +0100, Diego Biurrun wrote:
>> >> > I disagree strongly. Renaming variables because of a broken compiler
>> >> > simply hides bugs in the compiler. If people keep seeing that they
>> >> > have to make workarounds when using broken compilers maybe they'll
>> >> > complain to the compiler vendor or switch to a standards-compliant
>> >> > compiler. If we just hide the bug it encourages people to use this
>> >> > crap.
>> >> This case is different IMO. The use of 'time' as variable name is
>> >> problematic. You have to have a copy of the C standard lying around to
>> >> check which uses are allowed and which aren't to avoid shooting yourself
>> >> in the foot.
>> > No you don't. It's very clear. You're not allowed to use names from
>> > the C library as external symbols. Any other use is just fine as long
>> > as you don't include the header (in this case time.h).
>> Even if you do include the header, using the names in local scope is
>> fine, with the exception of object-like macros. Standard library
>> functions are not allowed to be defined by the system headers as
>> object-like macros, so using "time" as a local variable name will
>> never be problematic in a conforming environment. The C99 standard
>> makes this quite clear in sections 7.1.3-4.
> Are you sure? I was going by SUSv3 which is supposedly aligned with
> ISO C99. Reading the C99 draft, I have:
> 7.1.4 Use of library functions
> [#1] ................................................... Any
> function declared in a header may be additionally
> implemented as a function-like macro defined in the header
> I suppose this cannot cause conflicts with local variables though
> since () is never valid after a variable name.
Yes, function-like is the opposite of object-like when talking about
mru at inprovide.com
More information about the ffmpeg-devel