在Win32 API编程中,通常使用struct具有多个字段的C s.通常只有其中几个具有有意义的值,而其他所有值都必须归零.这可以通过以下两种方式之一实现:
STRUCT theStruct;
memset( &theStruct, 0, sizeof( STRUCT ) );
Run Code Online (Sandbox Code Playgroud)
要么
STRUCT theStruct = {};
Run Code Online (Sandbox Code Playgroud)
第二个变体看起来更干净 - 它是一个单行,它没有任何可能输错的参数并导致错误被种植.
与第一个变体相比,它有任何缺点吗?使用哪种变体?为什么?
为什么ZeroMemory()在C标准库中存在memset和相关调用时,Windows API中存在类似的调用?我应该打电话给哪些人?我猜可以回答"依赖".什么?