Re: Various small patches (Zend, TSRM...)
| From: | Zeev Suraski | Date: | Tue, 05 Dec 2000 12:03:44 +0000 |
| Subject: | Re: Various small patches (Zend, TSRM...) | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-40118@lists.php.net to get a copy of this message | ||
At 13:41 5/12/2000, Sascha Schumann wrote:
Now you are putting words into my mouth. No, I did not assume
that. I replied to your criticism of the changes in ANSI C
and tried to outline why it is sensible to write "foo(void);"
Uhm, you said "I disagree. Requiring functions to be fully prototyped does make sense for type promotion.". Nobody was arguing that The 2nd part of your paragraph was totally subjective (why is there a need to differentiate anyway?)
So again I say, it's good to see that the committees are advancing backwards. Instead of removing this stale 'void', they're now forcing to add it in. Bright.We are still in a transition phase. ISO C99 supports the K&R semantics of prototypes with empty parentheses, because such code bases still exist and are only slowly converted over to using prototype-format parameter type declarators, if at all.But: ISO C99 says in 6.11.6: "The use of function declarators with empty parentheses is an obsolescent feature."
So, the K&R semantics will go away. That is why I maintain
that you should not suppress a compiler message which simply
says "you are using an obsolescent feature. Don't do that."
It makes perfect sense to turn off a warning that basically warns you that you forgot to write redundant 4 letters (if it was possible, which unfortunately it isn't with the compilers I know).
At any rate, I don't really care. I don't plan on writing (void) on a regular basis until compilers become dumb enough to force me to do that, and I hope (and believe) that won't happen (the 'transition phase' you're talking about is likely to outlive all of us, because of the huge C code base that exists).
Zeev
--
Zeev Suraski <zeev@zend.com>
CTO, Zend Technologies Ltd. http://www.zend.com/