By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
449,141 Members | 1,218 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 449,141 IT Pros & Developers. It's quick & easy.

getting return value from function without return statement.

P: n/a
Hi.

Just curiocity,

Because of pre-ANSI C, it is possible to have a function without specifying
return type of a function (which makes the return type 'int', though) and
give no 'return' statement. For example:

foo(int a, int b)
{
int sum;
sum = a + b;
}

void
bar(void)
{
int i = foo(1, 2);
...
}

In above code, the 'i' variable in bar() will have no useful value.
But what does the standard says? I overlooked the ISO C standard, but
found no mention about this problem.

Is this a kind of 'undefined bebavior'? Or 'unspecified behavior'?

If there's wrong point on my explanation, please enlighten me. ;-)
Or, could you give me the section number of ISO C document where it deals
with such case?
Nov 14 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
ta*******@yahoo.co.kr (Seong-Kook Shin) wrote:
foo(int a, int b)
{
int sum;
sum = a + b;
}

void
bar(void)
{
int i = foo(1, 2);
...
}

In above code, the 'i' variable in bar() will have no useful value.
But what does the standard says?


That it invokes undefined behaviour (which is worse than having no
useful value; it could crash, for example):

# 12 If the } that terminates a function is reached, and the value of
# the function call is used by the caller, the behavior is undefined.

That's from 6.9.1.

Richard
Nov 14 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.