解释C代码片段:预处理器+ printf =?

Vis*_*ish 2 c printf c-preprocessor

此代码段的输出是%s is a string is a string.请解释.

#include <stdio.h>

#define scanf "%s is a string"

int main()
{
    printf(scanf, scanf);  
}
Run Code Online (Sandbox Code Playgroud)

AnT*_*AnT 6

您希望我们究竟解释什么?包含宏并获得

printf("%s is a string", "%s is a string");
Run Code Online (Sandbox Code Playgroud)

其余的是预期的正常日常行为printf.

PS #define scanf ...???