[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-libc-dev] selective linking of floating point support for *prin
From: |
Eric Blake |
Subject: |
Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf |
Date: |
Fri, 29 Aug 2014 10:12:55 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.7.0 |
On 08/29/2014 10:03 AM, Eric Blake wrote:
> On 08/29/2014 09:51 AM, Grissiom wrote:
>>> Yes, it does. The namespace reserved for the implementation is _[_A-Z].
>>> The namespace _[a-z] is still available for the user. Which means the
>>> user can declare their own _printf_float, and WE (as the implementation)
>>> MUST NOT INTERFERE with it. Since WE are the implementation, we should
>>> use the namespace reserved for us, namely __printf_float.
>>>
>>>
>> You mean _[_a-z] (lower case) is the namespace reserved for implementation,
>> right?
>
> No, I spoke correctly. The namespace reserved for the implementation is
> all double underscores, and all single underscore followed by a capital.
> Single underscore followed by a lower case is NOT reserved for the
> implementation, and is therefore free for use by the user, and therefore
> the implementation must not interfere with the user's use of that namespace.
Quoting POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/toc.htm
> The following identifiers are reserved regardless of the inclusion of headers:
>
> 1.
> With the exception of identifiers beginning with the prefix _POSIX_, all
> identifiers that begin with an <underscore> and either an uppercase letter or
> another <underscore> are always reserved for any use by the implementation.
> 2.
> All identifiers that begin with an <underscore> are always reserved for
> use as identifiers with file scope in both the ordinary identifier and tag
> name spaces.
>...
Of course, that list feels a bit too restrictive in light of existing
standardized uses of underscore followed by capital. such as _Bool and
_Exit in C99; and C11 has introduced even more things like _Noreturn.
But the REASON that C has been able to extend the language and add more
keywords beginning with underscore-capital is precisely because those
names were reserved for the implementation, not the user, so it can't
break any user code.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, (continued)
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Joern Rennecke, 2014/08/27
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Thomas Preud'homme, 2014/08/27
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Joern Rennecke, 2014/08/27
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Thomas Preud'homme, 2014/08/28
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Joern Rennecke, 2014/08/28
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Joern Rennecke, 2014/08/28
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Thomas Preud'homme, 2014/08/29
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Eric Blake, 2014/08/29
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Grissiom, 2014/08/29
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Eric Blake, 2014/08/29
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf,
Eric Blake <=
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Thomas Preud'homme, 2014/08/30
- Re: [avr-libc-dev] selective linking of floating point support for *printf / *scanf, Thomas Preud'homme, 2014/08/30