2016-12-26 86 views
-1

我一直困惑的是,爲什麼我們使用typedef結構節點創建節點,而同樣的事情可以用結構節點可以輕鬆實現只...使用typedef創建節點的優點是什麼?

+0

請參考此鏈接:http://stackoverflow.com/questions/2566027/what-is-the-use-of-typedef –

+0

這是一個C的東西。兩者都以C++工作。 –

+3

這個構造在C中有一些值,但在C++中很少。隨意寫'struct node {...};' –

回答

2

這不是它做的方式。

它通常

struct node { ... }; 

typedef struct { ... } node; 
//here node is a alias for an anonymous struct or... 
typedef struct node_ { ... } node; //note the two names are different 

在C++中,這並不使任何特定的區別是:node是在任何情況下一個類型。

但它在C,其中節點是用於在第一種情況下的類型struct node(不只是節點)一個標籤,只是該類型node在第二種情況下是不同的

庫限定必須工作同爲C和C++類型通常採用第二種形式中,以便它們可以在任何其他表達僅舉node,而不是struct node,像在

node* first() { ... } 

代替

struct node* first() { ... }