我阅读了以下代码片段:
va_list args; memset(&args, 0, sizeof(va_list)); va_start(args, xxx); ... va_end(args);
这memset()
之前有va_start()
什么含义?
如果memset()
拆除线路有什么区别?
这意味着编写本文的程序员不知道他们在做什么,并喜欢浪费代码.
他们可能会盲目地遵循某些静态分析工具的指令,即变量必须在使用之前进行初始化.
va_start(args, xxx);
完成所有必要的初始化,并覆盖memset
刚刚放入的所有0值,使得工作变得memset
毫无价值.