我目前正在使用C语言编写一些微控制器代码,并且我正在使用的第三方库之一以以下方式定义了一些结构和联合:
typedef struct
{
...members of struct...
} somename;
typedef struct
{
...members of struct...
} somename2;
typedef union
{
somename somename;
somename2 somename2;
} anothername;
该代码在Atmel Studio 7中编译(不确定使用的是底层编译器),但是在Arduino IDE(我相信使用的是gcc / g ++版本)中无法编译。
以上代码是否有效C?还是有效的C ++?还是有效?对于我来说,这段代码的作者给这个工会的成员一个变量名与类型名相同,这恰好是他们定义的结构,这对我来说似乎很奇怪在文件上方。
无论如何,Arduino编译器在到达此代码时会引发错误,因此我试图弄清楚它是否是有效代码以及如何使Arduino编译器像这样。有什么建议?谢谢!
答案 0 :(得分:0)
Ir默认情况下是作为C ++编译的,因此您需要添加-xc
命令行选项。
据我所知,C ++不允许类型和对象使用相同的名称。