这个表达是什么意思?SP_DEVINFO_DATA devdata = {sizeof(SP_DEVINFO_DATA)
What does this expression mean? SP_DEVINFO_DATA devdata = {sizeof(SP_DEVINFO_DATA)};
我看到c++代码是这样写的,它可以通过MSVC编译。
SP_DEVINFO_DATA devdata = {sizeof(SP_DEVINFO_DATA)};
这个表达是什么意思?我从来没有见过这样的代码。
有人能帮忙吗?
这叫做聚合初始化。在这种情况下,它只显式初始化devdata
的第一个成员(其余的都是初始化的值,感谢WhozCraig的注释并让我添加这一点),大概是一个保存字节数的字段,到结构的大小。
从SP_DEVINFO_DATA
参考页中,第一个成员是名为cbSize
的DWORD
,即:
SP_DEVINFO_DATA结构的大小,以字节为单位。
这意味着:
WINAPI结构体通常在其第一个成员中公开结构体的大小。这样,操作这种结构的代码就可以检查该成员,以确定它正在处理的结构的版本。初始化一个名为
devdata
的自动变量,类型为SP_DEVINFO_DATA
,并将其第一个成员设置为sizeof(SP_DEVINFO_DATA)
。
这就是初始化结构的方法。初始化SP_DEVINFO_DATA
结构体的第一个成员,它应该是cbSize
和结构体的大小。
相关文章:
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 'string.assign(string.data(), 5)' 是明确定义的还是 UB?
- 收到错误"invalid use of non-static data member 'stu::n' "
- C++ 初始化 .data 部分中的变量
- 模式"allocate memory or use existing data"
- boost::asio data owning `ConstBufferSequence`
- Python to C++ Data structure API
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- protobuf C++ SQLite handle blob data
- 错误:字段'dateOfBirth'的类型不完整'Poco::Data::Date'
- 为什么构造函数 Message(const T&data) 与 Message(T&& data) 冲突,当 T = int&时?
- "thread-safe data"与"thread-safe code/functions"的区别
- 如何找到目标文件 *.o 的 ram rom 使用情况(.bss .text .rodata .data)?
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- *(int*)&data[18]在这段代码中实际上做了什么?
- 出现这种错误的原因是什么"invalid use of non-static data member "
- 构造中错误:未在此范围中声明"data"
- 我可以在初始化之前使用 std::array 成员变量中的 data() 指针吗?发出警告
- 如何将data[i].int转换为vaible