© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu

C and C++ Interview Questions

3.    What is the difference between run time binding and compile time binding?

Ans:
Dynamic Binding :
The address of the functions are determined at runtime rather than @ compile time. This is also known as "Late Binding".

Static Binding :
The address of the functions are determined at compile time rather than @ run time. This is also known as "Early Binding"

Ex - 1: What is the output?

func(a,b)
int a,b;
{
 return( a= (a==b) );
}
main()
{
int process(),func();
printf("The value of process is %d !\n ",process(func,3,6));
}
process(pf,val1,val2)
int (*pf) ();
int val1,val2;
{
return((*pf) (val1,val2));
 }

Ans:
The value if process is 0 !

Explanation:

The function 'process' has 3 parameters - 1, a pointer to another function  2 and 3, integers. When this function is invoked from main, the following substitutions for formal parameters take place: func for pf, 3 for val1 and 6 for val2. This function returns the result of the operation performed by the function 'func'. The function func has two integer parameters. The formal parameters are substituted as 3 for a and 6 for b. since 3 is not equal to 6, a==b returns 0. therefore the function returns 0 which in turn is returned by the function 'process'.

Ex - 2: What is the output?

void main()
{
            static int i=5;
            if(--i){
                        main();
                        printf("%d ",i);
            }
}

Ans:
 0 0 0 0

Explanation:

            The variable "I" is declared as static, hence memory for I will be allocated for only once, as it encounters the statement. The function main() will be called recursively unless I becomes equal to 0, and since main() is recursively called, so the value of static I ie., 0 will be printed every time the control is returned.


SLogix Student Projects
bottom