【发布时间】:2017-01-11 09:25:47
【问题描述】:
我阅读了以下代码片段:
va_list args;
memset(&args, 0, sizeof(va_list));
va_start(args, xxx);
...
va_end(args);
memset()在va_start()之前的含义是什么?
如果去掉memset() 行有什么区别?
【问题讨论】:
-
它用零填充
args变量。 -
你在哪里找到这个代码?我认为这是没用的,因为
va_start之后写args。 -
有趣。
va_start(args, xxx);不会看起来像初始化args一样多于foo(args)不会影响main()的args。然而va_start是一个宏并且确实会影响args。
标签: c memset variadic-functions