On Tuesday, 17 July 2012 at 15:16:56 UTC, Regan Heath wrote:
On Tue, 17 Jul 2012 15:46:34 +0100, Jacob Carlborg
<d...@me.com> wrote:
On 2012-07-17 16:36, Regan Heath wrote:
I believe old-style no parameter function declarations MUST
have "void"
i.e.
int foo(void);
That is still the case, regardless of "style"?
They cannot read:
int foo();
The latter MUST have parameters, we just can't tell what they
are.
Take a look at this:
http://en.wikipedia.org/wiki/K%26R_C#KRC
In that example none of the functions have any parameters
declared and are not called with any arguments.
K&R C did not allow you to declare arguments at all, according
to the wiki:
"Since K&R function declarations did not include any
information about function arguments, function parameter type
checks were not performed, although some compilers would issue
a warning message if a local function was called with the wrong
number of arguments, or if multiple calls to an external
function used different numbers or types of arguments. Separate
tools such as Unix's lint utility were developed that (among
other things) could check for consistency of function use
across multiple source files."
So all K&R function declarations were <name>() with no
parameters.
R
K&R was more than that.
I guess most old timers here will agree with me that it was
not much more than glorified assembler in what concerns typing.
Much of the typing C has today, was actually brought in as part
of the
ANSI C standardization process.
--
Paulo