Visual c++ 错误:C+;中不允许使用类型名称+;
当我编译代码时,VC++返回一个错误,如上所述。受影响的行是Visual c++ 错误:C+;中不允许使用类型名称+;,visual-c++,Visual C++,当我编译代码时,VC++返回一个错误,如上所述。受影响的行是(笔刷){5.6214.0,13.0} 更具体地说,这里是受影响的代码块 const brushes palette[] = { (brushes){5.6, 214.0 , 13.0}, (brushes){200.0, 211.0, 12.0} }; 这段代码在Linux中编译得很好,那么为什么VC++会出现这种情况呢 编辑:画笔定义: typedef union { struct { d
(笔刷){5.6214.0,13.0}
更具体地说,这里是受影响的代码块
const brushes palette[] = {
(brushes){5.6, 214.0 , 13.0},
(brushes){200.0, 211.0, 12.0}
};
这段代码在Linux中编译得很好,那么为什么VC++会出现这种情况呢
编辑:画笔定义:
typedef union {
struct {
double c;
double m;
double y;
} t;
double v[3];
} brushes;
您使用的是MS VC不支持但GCC支持的C99构造(§6.5.2.5复合文本) 通过删除
(画笔)
符号,您应该能够在这两种语言上编译代码:
const brushes palette[] = {
{ { 5.6, 214.0, 13.0 } },
{ { 200.0, 211.0, 12.0 } },
};
这将初始化
联合
的第一个成员,即笔刷
。这适用于GCC;我相信它也应该适用于MSVC。画笔的定义是什么??还有,具体的错误消息是什么?@shelleybutterfly-这是它得到的具体信息,也是VC++抛出的问题。@Alastair-补充说,不过,其他人也有这个问题,但他们没有说他是如何解决的。请看这里:@Skaty-hehe哇,好吧,这看起来像是对错误的描述,我道歉:)好吧,这很有效。但是,对于某些类型,它返回了一个错误“Expected a expression”。示例:返回(画笔){5.6,214.0,13.0}@Skaty:和以前一样-不能将C99构造与MSVC一起使用;它不支持C99。