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