+ 1
how that work?
#include <stdio.h> #define x 10+5 int main() { int a=x*x; printf("%d",a); return 0; }
2 Answers
+ 6
#define is preprocessor directive, and compiler replace all x in your code on 10+5, so your code for compiler will look like:
int a = 10 + 5 * 10 + 5;
And a = 65, because exist priority of operations
#define don't count, it replace
+ 3
The expression
a = x * x;
Will be replaced with
a = 10 + 5 * 10 + 5;
Considering multiplication operation has higher priority over addition, multiplication of 5 * 10 is processed first, then the result (50) will be added by 10 to the left, and 5 to the right.