我有一个这样定义的结构:
typedef struct spi_device device_t;
struct spi_device {
int a;
int b;
int c;
};
在包含文件中定义。
在源文件中,
static device_t my_main_dev =
{
.a = 2,
.b = 3,
.c = 4,
};
我已确保包含文件包含在源文件中。
但是,当我编译这段代码时,我得到了错误“请求成员'a'而不是结构或联合”。我无法纠正此问题。
我读过几篇有关此问题的文章,但都没有说在结构对象初始化期间遇到错误时可以做什么。在这方面的任何帮助都将受到赞赏。
答案 0 :(得分:1)
您没有提供出现问题的可编译源文件。该诊断可能与源文件中发布的内容有关。
如果警告确实指向所发布的代码,请执行以下一些解释:
-std=c89
或-ansi
)。要解决这些限制,可以对结构初始化程序使用经典语法:
static device_t my_main_dev = { 2, 3, 4 };
答案 1 :(得分:0)
这是一个愚蠢的错误。我错过了其中一个字段的逗号。放回去可以解决编译器错误。对不起,麻烦了。