TL DR The variable name T must be replaced by MACRO, not by the initializer 'T' .
To develop, #define MACROs cause text replacements and anything inside the quotation marks (either '' or "" ) are not part of the MACRO replacement.
Essentially, try running the preprocessor on your code (example: gcc -E test.c ) and it looks like
char t = 'T'; printf("\n%c\t%c\n",t,t);
Run gcc -E main.c -o test.txt && tail -f test.txt and See it online
which is expected to output the value of the variable T , TT .
However, for a hosted environment, the required signature for main() is int main(void) , at least.
source share