C Programming - Functions - Discussion

Discussion Forum : Functions - Find Output of Program (Q.No. 1)
1.
What will be the output of the program in 16 bit platform (Turbo C under DOS)?
#include<stdio.h>

int main()
{
    int fun();
    int i;
    i = fun();
    printf("%d\n", i);
    return 0;
}
int fun()
{
    _AX = 1990;
}
Garbage value
0 (Zero)
1990
No output
Answer: Option
Explanation:

Turbo C (Windows): The return value of the function is taken from the Accumulator _AX=1990.

But it may not work as expected in GCC compiler (Linux).

Discussion:
43 comments Page 2 of 5.

Manish kulkarni said:   8 years ago
As there is no return statement then how it will return value to calling the function?

Swapnil said:   9 years ago
First, declare the _AX as integer variable in fun function then, return the _AX from fun Function in order to get the same output. But _AX is an accumulator which we can not access directly in GCC compiler. Why so? Please explain.

Ashok said:   9 years ago
How can prototype declaration of fun() done in main function?

SyntaxError said:   9 years ago
In the above given program, there is no return type in called fn. Then how it return the value to calling function?

And why this c compiler showing an error?

Ahmedhalim said:   9 years ago
This code will print garbage value because it isn't has return.

Sanju said:   9 years ago
First of all, in the function definition, there is no return statement. So error1===no return statement.

_AX is not declared. So error2=='_AX' undeclared (first use in this function).

How will it give output?

Can anyone help me?

Raju said:   9 years ago
'_AX' is undeclared so it should not give any output.

Thamizharasi said:   10 years ago
Actually it shows an error because the function is defined outside the main function. To show an output the function will be declared before main function.

Neeraj said:   10 years ago
How can a function be called in main without mentioning its prototype before the main()?

Richik said:   1 decade ago
In function 'fun':

Line 13: error: '_AX' undeclared (first use in this function).

Line 13: error: Each undeclared identifier is reported only once.

Line 13: error: For each function it appears in.

Encountering these errors, on copying the given code. How did you guys get the answer as 1990?


Post your comments here:

Your comments will be displayed after verification.