Re: Strange function use
- From: "pemo" <usenetmeister@xxxxxxxxx>
- Date: Thu, 3 Aug 2006 12:19:14 +0100
spibou@xxxxxxxxx wrote:
pemo wrote:
Christian Christmann wrote:
Hi,
in a benchmark I've found an uncommon use of a function.
This is the simplified form:
1 int foo( int f )
2 {
3 return f;
4 }
5
6 int main( void )
7 {
8 int a, b, foo();
9 a = 10;
10 b = foo( a );
11
12 return 0;
13 }
I don't understand the use of function "foo" in line 8.
What's it's purpose? It's called without assigning it's
return value to any variable. Furthermore, I wonder
why this function use is allowed at all. According to
the function prototype "foo" expects an integer argument
that is in line 8 not given. Compiling the code with
"gcc -Wall -ansi" does not issue any warning/errors.
Could you shed some light on that.
It's not a /call/ but a declaration - it's say that foo is a function
returning an int. I believe it's also /saying/ that foo takes an
unknown number/type of args - however, as foo's definition is in
scope, the compiler already knows about it ... thus the declaration
in line 8 isn't necessary.
What are the semantics of declaring a function inside
another function ?
A declaration of a function is just a /prototype/ - ok?
--
==============
Not a pedant
==============
.
- Follow-Ups:
- Re: Strange function use
- From: Eric Sosman
- Re: Strange function use
- From: spibou
- Re: Strange function use
- References:
- Strange function use
- From: Christian Christmann
- Re: Strange function use
- From: pemo
- Re: Strange function use
- From: spibou
- Strange function use
- Prev by Date: Re: Strange function use
- Next by Date: Re: The illusion of "portability"
- Previous by thread: Re: Strange function use
- Next by thread: Re: Strange function use
- Index(es):
Relevant Pages
|