ws2811_t: 在 C++ 中从 C 库正确初始化 typedef 结构

ws2811_t: Initializing typedef struct from C library properly in C++

我正在尝试在 C++ 项目中使用来自 jgraff (https://github.com/jgarff/rpi_ws281x) 的 C 库。使用库编译示例时,字符串可以完美运行,但在我的 C++ 项目中,代码无法编译。

首先,我 运行 遇到了与这里描述的相同的问题:

我还在学习 C++ 的路上,但这个结构超出了我的理解范围,因此我只是将代码复制过来,现在出现以下错误。

error : braces around scalar initializer for type ‘int’

然后我将结构的初始化剥离为以下内容:

ws2811_t ledstring =
{
 nullptr,
 TARGET_FREQ,
 DMA,

 GPIO_PIN, 0, LED_COUNT, 255 

};

现在我收到以下错误:

error: invalid conversion from ‘int’ to ‘const rpi_hw_t*’

谁能告诉我哪里出了问题?

在 g++ 中使用 -fpermissive 选项会将此错误视为警告并且代码编译良好。