【发布时间】:2013-05-29 14:16:42
【问题描述】:
因为在 C 中我可以按名称调用结构的成员 (myStruct.myMember = ),所以我想知道在 C++ 中我将如何处理那些未初始化的成员。 据我了解,C++ 不支持这种初始化:
static struct usb_endpoint_descriptor fs_source_desc = {
.bLength = USB_DT_ENDPOINT_SIZE,
.bDescriptorType = USB_DT_ENDPOINT,
.bmAttributes = USB_ENDPOINT_XFER_BULK,
.wMaxPacketSize = __constant_cpu_to_le16 (64),
};
但是当我使用正确的语法时,如何处理未初始化的成员?
假设我想要 bDescriptorType 未初始化。我是否将其设置为 NULL?
static struct usb_endpoint_descriptor fs_source_desc = {
USB_DT_ENDPOINT_SIZE,
NULL,
USB_ENDPOINT_XFER_BULK,
__constant_cpu_to_le16 (64)
};
或者在 C++ 中有什么方法可以通过名称初始化结构的成员?
【问题讨论】:
-
这是一个非常愚蠢的问题标题。既然您已经知道您正在谈论的 C 语言功能不是 C++ 的功能,那么您为什么不能给这篇文章起一个比在编写无效代码时打印随机错误更明智的标题?