转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/44203651
今天想写个宏定义,发现宏定义里也可以写不定参数,但是我的宏最终没有用。
因为我觉得写完,这个不定参数给我带来的麻烦,比好处好想多。
因此我就定义了两个宏,用一个宏定义另一个。
把今天这个c++的类型不确定和参数个数不确定的用法先记下来。以备后用啊。
直接代码:
#include<cstdarg> // 必备头文件 #include<iostream> using namespace std; typedef enum POSITION_TRACKING_STATE { NA = 11, NB, NC } TRACKING_STATE; int Test(TRACKING_STATE state, ...) { va_list arg_ptr; int sum = 0; int nArgValue; sum += state; va_start(arg_ptr, state); do { nArgValue = va_arg(arg_ptr, TRACKING_STATE); sum += nArgValue; //自定义结束条件是输入参数为0 } while (nArgValue != NULL); va_end(arg_ptr); return sum; } int main() { cout << Test(NA, NB, NC, NULL) << endl; //必须以NULL 或0 结尾,因为参数列表结束的判断条件是读到0停止 return -1; }
参考各个网页。
非常感谢各位。
-----------------
若有问题,请随时联系!
再次致谢!
原文地址:http://blog.csdn.net/cartzhang/article/details/44203651