#include <stdio.h>#define a (1,2,3)#define b {1,2,3}int main(){ unsigned int c = a; unsigned int d = b; printf("%d\n",c); printf("%d\n",d); return 0;}Above C code will print output as 3 and 1.
But how are #define a (1,2,3) and #define b {1,2,3} taking a=3 and b=1 without build warning, and also how () and {} are giving different values?








