相关疑难解决方法(0)

宏评估订单

可能重复:
宏中的#和##

为什么第二个printf的输出是f(1,2)宏的评估顺序是什么?

#include <stdio.h>
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)

int main()
{
  printf("%s\n",h(f(1,2)));
  printf("%s\n",g(f(1,2)));
  return 0;
}

output 12 
       f(1,2)
Run Code Online (Sandbox Code Playgroud)

c c++ macros c-preprocessor

13
推荐指数
2
解决办法
7557
查看次数

宏定义中的空#是什么意思?

我有以下宏:

#define F(Args, ...) \
   // macro definition
#
   F(()) // looks like usage?
#undef F
Run Code Online (Sandbox Code Playgroud)

该行只含有什么#意思?是F(())宏的用法吗?

c c++ macros

12
推荐指数
1
解决办法
484
查看次数

标签 统计

c ×2

c++ ×2

macros ×2

c-preprocessor ×1