#include <stdio.h>
void F(int a)
{
printf("%d\n",a);
}
#define F(a) F(a);printf("haha\n") //即用F(a);printf("haha\n")替换F(a)
int main()
{
F(3);//就是把F(3)替换成F(a);printf("haha\n") F(3)后的;补到F(a);printf("haha\n")后边,所以上边define定义printf后不能加;
//而F(a);printf("haha\n") 这里的F(a)调用的是上边定义的F函数所以会输出:3换行haha换行
return 0;
}
/*
#include <stdio.h>
#define F(a) F(a);printf("haha\n");//void F()如果放在宏名F之后,该函数首部会被替换为void F(int a);printf("haha\n")
void F(int a) //这里就会报错
{
printf("%d\n",a);
}
int main()
{
F(3);
return 0;
}
*/
#include <stdio.h>
void F(int a)
{
printf("%d\n",a);
}
#define F(a) F(a);printf("haha\n") //即用F(a);printf("haha\n")替换F(a)
int main()
{
F(3);//就是把F(3)替换成F(a);printf("haha\n") F(3)后的;补到F(a);printf("haha\n")后边,所以上边define定义printf后不能加;
//而F(a);printf("haha\n") 这里的F(a)调用的是上边定义的F函数所以会输出:3换行haha换行
return 0;
}
/*
#include <stdio.h>
#define F(a) F(a);printf("haha\n");//void F()如果放在宏名F之后,该函数首部会被替换为void F(int a);printf("haha\n")
void F(int a) //这里就会报错
{
printf("%d\n",a);
}
int main()
{
F(3);
return 0;
}
*/