Just Programming
Pages
Home
C C++ Topics
JAVA Aptitude
Assaan IT Solutions
My Facebook Group
My Site
Saturday, 13 April 2013
#define
What will be output if you will compile and execute the following c code?
#define
x 5+2
void
main(){
int
i;
i=x*x*x;
printf(
"%d"
,i);
}
(A)
343
(B)
27
(C)
133
(D)
Compiler error
(E)
None of above
Explanation:
As we know #define is token pasting preprocessor it only paste the value of micro constant in the program before the actual compilation start. If you will see intermediate file you will find:
test.c 1:
test.c 2:
void
main(){
test.c 3:
int
i;
test.c 4: i=5+2*5+2*5+2;
test.c 5: printf(
"%d"
,i);
test.c 6: }
test.c 7:
You can absorb #define only pastes the 5+2 in place of x in program. So,
i=5+2*5+2*5+2
=5+10+10+2
=27
No comments:
Post a Comment
Newer Post
Older Post
Home
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment