Можете ли вы помочь мне с коротким кодом, который может печатать сам себя?

#define q(k)main(){return!puts(#k"\nq("#k")");}
q(#define q(k)main(){return!puts(#k"\nq("#k")");})

Этот код может печататься на экране, однако мне трудно его читать, особенно эти два # K, как это работает? Я знаю, как #define q (k ) 2 * k работает, но я понятия не имею об этом коде. Помогите, пожалуйста, разобрать его! Спасибо!

5
задан coqer 20 November 2011 в 09:40
поделиться