2009-11-24 33 views
0

我正在使用xcode在macOS X 10.6.2上使用C++項目。Pbl xcode C++ typedef結構toto toto

我試圖在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: error: changes meaning of 'direction' from 'typedef struct direction direction'

我使用GCC4.2並沒有改變任何東西。此代碼適用於每個平臺,任何人都可以幫助我嗎?

+0

我只是試過,看起來像在Linux上工作 – 2009-11-24 09:29:00

回答

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,這是不需要的。

0

在C++中,structclass僅在聲明或定義結構或類時使用。你可能想要C中的typedef,但在C++中它沒有任何意義。