在VC6.0下由于不支持Varadic Macro,只能使用变参函数列表模拟。 在宏实现方式的参数中会使用参数"ptInst",这个是固定的实例指针对象名称,采用变参函数实现的话由于进入了不同的scope,不能使用"ptInst"来获取相关信息,因此需要把相关信息存到全局变量中保存,然后调用自定义的变参函数接收变参列表。实际上只是一个文...
使用保留名__VA_ARGS__来将参数传递给宏 #define debug(...) printf(__VA_ARGS__) 实例: PR("Howdy"); //宏展开后有一个参数printf("Howdy"); PR("weight = %d, shipping = $%.2f\n", wt, sp); //宏展开后有三个参数printf("weight = %d, shipping = $%.2f\n", wt, sp); 注意:在...
sum = 30 其实本质上就是用int arg[] = {VA_ARGS}对宏的变参部分构造了一个局部变量数组,便于求出参数的数量。 5月份注册的简书,今天才写第一篇文章啊,转载请注明出处哦^_^