On Thu, 15 Feb 2024, Florian Weimer wrote:
>> Naive questions: Can definitions really be prototypes (in C)?
> Yes, I think so: definitions can be declarations, and function
> prototypes are declarations. The standard uses the phrase “function
> definition that does not include a function prototype declarator”.
> Should I write “old-style function definition” instead?
I think that would have helped me (as a not too much of a language
expert). Only make that change if you think it makes sense, though.
>>> +GCC will type-check function arguments after that, potentially
>>> +requiring further changes. (Previously, the function declaration was
>>> +treated as not having no prototype.)
>> That second sentence uses double negation, which logically is the same as
>> just the original statement.
> Other reviews suggests to change it to “not having [a] prototype”.
Ah, let's use that then.
>>> +By default, GCC still accepts returning an expression of
>>> +type void
from within a function that itself
>>> +returns void
, as a GNU extension that matches C++ rules
>>> +in this area.
> Does the GNU extension match C++ (standard rules)?
> Yes. Should I write “matches [standard] C++ rules”?
Looks good to me.
(At first I was confused, but I guess this is a GNU extension to the C
standard - that matches standard C++ in this area?)
Gerald