我在一些 C 代码中看到了这个:
Wininfo W = { sizeof(Wininfo) };
这到底是什么意思?
最佳答案
此代码使用时髦的 C 初始化语法初始化一个 struct
,以按声明顺序初始化每个字段,请参阅 http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=421 .在这个例子中,一个重要的副作用是剩余的字段没有指定初始化为零的值。
这个技巧在 Win32 API 中是一个相对常见的技巧 - API 需要预先设置大小,作为一种指示客户端代码编译所针对的版本的方式 - 在许多情况下,也需要清除缓冲区,通常需要单独调用例如memset
在使用 sizeof
初始化大小字段之前。
另见 Struct initialization of the C/C++ programming language?相关例子
关于涉及 {} 的 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2042577/