2013-12-08 8 views
1
struct term{ 
    double coef; 
    unsigned deg; 
    struct term * next; 
}term_t; 
typedef struct term * Term; 
typedef struct term * Poly; 

我必須使用這個代碼的一類多項式。此代碼由我的教授提供,但我不明白它爲什麼可行。我們如何用兩個不同的指針鍵入相同的結構? term_t做什麼?

+1

這沒有按」現在「工作」。 (更不用說它有未定義的行爲,因爲'_t'後綴是爲實現保留的。)這是一個數據結構。你需要一個算法來決定它是否工作。我也不明白你的問題是什麼 - 這是語法上的(到目前爲止語義上,但其中沒有太多的語義)正確的C代碼(除了挑剔的UB,很少,如果有的話,會導致問題)。 – 2013-12-08 07:09:07

+0

@Mat哦,那只是POSIX嗎? – 2013-12-08 07:18:30

+0

@ H2CO3:是的,謝謝,這是在POSIX。很酷,沒有意識到這一點。 – Mat

回答

2
typedef struct term 
{ 
    double coef; 
    unsigned deg; 
    struct term * next; 
} term_t; 

這被定義struct termtypedef同時它荷蘭國際集團到term_tterm_t行事像struct term,這樣就可以通過簡單地包括該行創建這種類型的結構變量的名稱...

term_t termVar; 

...而不必使用此行...

struct term termVar;

typedef struct term * Term; 
typedef struct term * Poly; 

這些線爲struct term *創建別名。現在,您可以像使用線...

Term pTermVar; 

...而不是...

struct term *pTermVar; 

他們本來也可以typedef ED這樣的:

typedef term_t * Term; 
typedef Term Poly; 
+1

那麼這是否意味着Term和Poly意味着同樣的事情? – user3079315

+0

@ user3079315這是正確的。 –

相關問題