Steve Graegert wrote:
On 9/9/05, _z33 <[EMAIL PROTECTED]> wrote:

 I had a wierd doubt today morning. If a function's return type is not
defined, "C" takes it as returning "int". Now, what does it do when I
don't specify the arguments of the function. Something like this -

 void sampleFunc ()
 {
      /* ... */
 }

 Is this equivalent to saying,

 void sampleFunc (void)
 {
      /* ... */
 }


Yes, technically both are equivalent.  The latter is the new style
while the former is the "old" style.  But be aware: A function defined
using the old style does __not__ establish a prototype, but if a
previously declared prototype for that function exists, the parameter
declarations in the definition must exactly match those in the
prototype after the default argument promotions are applied to the
parameters in the definition.

Conclusion: avoid mixing old style and prototype style
declarations/definition for a given function. It is allowed but not
recommended.

I'm clear... but, now wondering why for two days a guy from an R&D dept of an MNC is arguing with me, saying that a function with empty argument specification implies having implicit "int" type arguments. (similar to the implicit assumption of return type of functions to "int" when none is specified explicitly).

_z33
--
I love TUX; well... that's an understatement :)

-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" 
in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to