struct term{
double coef;
unsigned deg;
struct term * next;
}term_t;
typedef struct term * Term;
typedef struct term * Poly;
我必須使用這個代碼的一類多項式。此代碼由我的教授提供,但我不明白它爲什麼可行。我們如何用兩個不同的指針鍵入相同的結構? term_t做什麼?
struct term{
double coef;
unsigned deg;
struct term * next;
}term_t;
typedef struct term * Term;
typedef struct term * Poly;
我必須使用這個代碼的一類多項式。此代碼由我的教授提供,但我不明白它爲什麼可行。我們如何用兩個不同的指針鍵入相同的結構? term_t做什麼?
typedef struct term
{
double coef;
unsigned deg;
struct term * next;
} term_t;
這被定義struct term
和typedef
同時它荷蘭國際集團到term_t
。 term_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;
那麼這是否意味着Term和Poly意味着同樣的事情? – user3079315
@ user3079315這是正確的。 –
這沒有按」現在「工作」。 (更不用說它有未定義的行爲,因爲'_t'後綴是爲實現保留的。)這是一個數據結構。你需要一個算法來決定它是否工作。我也不明白你的問題是什麼 - 這是語法上的(到目前爲止語義上,但其中沒有太多的語義)正確的C代碼(除了挑剔的UB,很少,如果有的話,會導致問題)。 – 2013-12-08 07:09:07
@Mat哦,那只是POSIX嗎? – 2013-12-08 07:18:30
@ H2CO3:是的,謝謝,這是在POSIX。很酷,沒有意識到這一點。 – Mat