memset()对va_list的含义是什么?

Shu*_*tan 1 c memset variadic-functions

我阅读了以下代码片段:

va_list args;
memset(&args, 0, sizeof(va_list));

va_start(args, xxx);
...
va_end(args);
Run Code Online (Sandbox Code Playgroud)

memset()之前有va_start()什么含义?

如果memset()拆除线路有什么区别?

abe*_*nky 6

这意味着编写本文的程序员不知道他们在做什么,并喜欢浪费代码.

他们可能会盲目地遵循某些静态分析工具的指令,即变量必须在使用之前进行初始化.

va_start(args, xxx);完成所有必要的初始化,并覆盖memset刚刚放入的所有0值,使得工作变得memset毫无价值.