我正在使用xcode在macOS X 10.6.2上开发一个C ++项目。
我试图在Windows上编译我的代码并且没有任何问题,我猜Linux正在运行,但我现在没有和我在一起。
我的问题是xcode不接受这种指令:
struct direction {
double x;
double y;
double z;
double t; };
typedef struct direction direction;
这是我的错误:
/Users/sbarbier/dev/xcode/Infographie/TP9-RayTracing/RayTracing-Direction.h:22:0 /Users/sbarbier/dev/xcode/Infographie/TP9-RayTracing/RayTracing-Direction.h:22:错误:从'typedef struct direction direction'改变'direction'的含义
我正在使用GCC4.2而且没有改变任何东西。这段代码适用于每个平台,任何人都可以帮助我吗?
答案 0 :(得分:0)
这不是C.在C中,要使用struct
,您必须使用关键字struct
:
struct some_struct{ int i; };
struct some_struct myStruct;
这种情况通常如此缓解:
typedef struct { int i; } some_struct;
some_struct myStruct;
在C ++中,这不是必需的。 direction
已经有一个类型,那么你正在尝试创建一个同名的新类型,这很糟糕。取出整个typedef
,不需要。
答案 1 :(得分:0)
在C ++中,struct
和class
仅在声明或定义结构或类时使用。你可能想要C中的typedef,但在C ++中它没有任何意义。