実行はできるのですが、表示がおかしいです。どうにかしてください。

#include <stdio.h>
#define BEGIN {
#define END }
#define MAIN int main()
#define PPP =
#define STRINGNISURUUUU(x) #x
#define STRINGNISURUUU(x) STRINGNISURUUUU(x)
#define STRINGNISURUU(x) STRINGNISURUUU(x)
#define PERSPECTIVE(x) STRINGNISURUU(x)
#define PRINT(x) szFileName(PERSPECTIVE(x))
#define PAUSE getchar();
#define RET return 0;

MAIN
BEGIN
    int (*szFileName)() PPP printf;
    PRINT(パースペクティブ京都マン\n);
    PAUSE
    RET
END