0 votes 0 votes Please explain the solution, whats the actual logic in questions of Preprocessor codes? Programming in C made-easy-test-series algorithms programming-in-c + – Markzuck asked Dec 30, 2018 recategorized Jul 6, 2022 by Lakshman Bhaiya Markzuck 367 views answer comment Share Follow See all 5 Comments See all 5 5 Comments reply kumar.dilip commented Dec 30, 2018 reply Follow Share Just Run this two code. #include <stdio.h> #define fo(a) a*a int main() { //printf("Hello World"); int a = 3; printf("%d", foo(a +1)); return 0; } 2. #include <stdio.h> int foo(int a) { return a * a; } int main() { //printf("Hello World"); int a = 3; printf("%d", foo(a +1)); return 0; } 1 votes 1 votes Shaik Masthan commented Dec 30, 2018 reply Follow Share @Markzuck it may help you https://gateoverflow.in/254600/programming-execution-doubt 1 votes 1 votes prashant jha 1 commented Dec 30, 2018 reply Follow Share While compilation itself , black(a) , black(a+1) and white(a) would be replaced with a+a*a*a+1+a+1*a+1 - a - a*a Now a is replaced with 3 , 3 + 3 * 3 * 3 + 1 + 3 + 1 * 3 + 1 - 3 - 3 * 3 , And then execution based on precedence and associativity is done. 1 votes 1 votes Shamim Ahmed commented Dec 30, 2018 reply Follow Share Yes Program should eliminate braces during compilation. In that case precedence would get changed. 1 votes 1 votes minal commented Jan 17, 2019 reply Follow Share here - is before white ,it will not change whole expression of white ? pls reply 0 votes 0 votes Please log in or register to add a comment.