特牛网址导航

[C语言] #、##、__VA_ARGS__的使用_‘__av_args__’-CSDN博客

网友收藏
从网上借鉴了一些内容,然后整理了一下三者的区别,记录一下。#include <iostream>// #: 用来把参数转换成字符串#define LOG1(x) do { printf("%s=%d\n",#x,x); }while(0)// ##:用于将带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串;但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元;#define LOG2(x) log##x()// __VA_‘__av_args__’