Я наткнулся на следующий код:
#include<stdio.h>
#define d(x) x(#x[3])
int main(){
d(putchar);
}
Что печатает c как вывод. Интересно, что делает макрос #define d(x) x(#x[3])? На языке C есть оператор вроде #? Я могу видеть это внутри тела макроса i.e здесь x(#x[3]). По моему нормальному глазу он выглядит чем-то другим, я вижу на языке С, но на самом деле. Что это делает?
Изменить: Каково реальное использование # в реальном мире?
Я новичок в C, и будет хорошо, если объяснение будет простым. Заранее спасибо.