📜  C |宏和预处理器|问题14

📅  最后修改于: 2021-06-29 05:14:36             🧑  作者: Mango

以下程序的输出是什么?

#include 
#define macro(n, a, i, m) m##a##i##n
#define MAIN macro(n, a, i, m)
  
int MAIN()
{
    printf("GeeksQuiz");
    return 0;
}

(A)编译器错误
(B)怪胎测验
(C)主要
(D)主要答案: (B)
说明:该程序具有一个预处理器,该预处理器将“ MAIN”替换为“ macro(n,a,i,m)”。 “ macro(n,a,i,m)”行再次被main代替。要注意的关键是令牌粘贴运算符##,它将参数连接到宏。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。