in reply to Re^2: help porting a line of bitwise C code to perl
in thread help porting a line of bitwise C code to perl

from the initials of the authors of the canonical textbook (The C Programming Language).

Yes. My copy sits on the shelf above my computer. It has a loose front cover, is a faded yellow color, has the ISBN number 9-130110163-3 and dates from 1978.

And on page 218/section 18.4 External definitions it give the following set of possibilities:

program: external-definition external-definition program external definition: function-definition data-definition function-definition: type-specifier(opt) function-declarator function-body function-declarator declarator ( parameter-list(opt) ) parameter-list: identfier identifier , parameter-list function-body: type-decl-list function-statement function-statement: { declaration-list(opt) statement-list }

I don't think you you'll find a much earlier revision than my copy, indeed I can't find any sign that it is a revised edition at all, but I can't see any interpretation of the above, that means that:

unsigned long func (c) unsigned char *c;

was ever a legal function declaration.

There are certainly no examples in the book that look like that, though there are precious few examples of function declaration. I've been doing C a long time and I've always declared function parameters inside the parens. I well remember the old DECUS compiler used to permit some extraordinary code, which why it was so favoured by the Obfuscated-C entrants, but I still do not recall seeing people use the above declaration form.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."