利用可变参数函数清空多个数组
我个人编程一向喜欢偷懒,每次刷题的时候,总要用memset一个一个的清空数组,烦死了。于是我定义了一个宏
1: #define Clean(x) memset(x, 0, sizeof(x))
来处理这个问题,但是数组多起来就麻烦了。(欸,我是有多懒 Orz)
于是想到可以用可变参数的函数来解决,如下:
1: #include <cstdarg>
2: #define M(a) memset(a, 0, sizeof(a))
3: void Clean(int count, ...)
4: {
5: va_list arg_ptr;
6: va_start (arg_ptr, count);
7: for (int i = 0; i < count; i++)
8: M(va_arg(arg_ptr, int*));
9: va_end(arg_ptr);
10: }
(某同学吐槽:这样好像更麻烦啊喂!!!!)
然后我就把这一段放到缺省源里面啦,就这样愉快的解决了。Orz