Beej Jorgensen said:
No one likes informality more than I do, but this is a case where one
can be exact with no particular loss. There's no gain here in playing
fast-and-loose, especially when so many people already think of the
terms interchangeably--you might as well say "parameter" when that's
what you mean.
I do, however, agree that simply stressing that "these are arguments,
and these are parameters" is not particular useful or vital information
on its own, and fixating on the details of the definitions can be
counter-productive. It's the behavior that's important, and it would
not surprise me one bit to find C programmers who are 100% clear on the
distinction between arguments and parameters without knowing the
difference between the two terms.
I think you'd agree that it's important to distinguish between the
expression that appears in a function call and the local object that
appears in the function declaration. Given that it's an important
distinction (especially in C with its pass-by-value semantics where
changes in the latter don't affect the former), why not use the same
terminology used by the standard to explain that distinction?
I just can't think of any valid reason, in a C tutorial, *not* to use
the terms "argument" and "parameter" consistently and correctly.
And I'm sure there are plenty of C programmers who understand the
distinction without necessarily knowing the correct terms. Surely
they'd benefit from learning the correct terms.
The point is that I disagree with your assertion that
... simply stressing that "these are arguments, and these are
parameters" is not particular useful or vital information ...
In my opinion, it's both useful and vital.
Now you *could* use different terminology, like "actual parameters"
and "formal parameters", but why? It might be worth mentioning the
alternatives in a footnote.