2013-10-03 70 views
0

我是C新手,我想將我的結構包含在頭文件中,但我不確定下面做的是否正確。我相信,我所需要的結構在頭文件中聲明,只是不知道,如果它是聲明結構類型功能search()頭文件中的struct和struct-type函數

#ifndef BTREE_H_INCLUDED 
#define BTREE_H_INCLUDED 

struct bin_tree { 
    char serial[30]; 
    int socket; 
    struct bin_tree * right, * left; 
}; 

typedef struct bin_tree node; 

node* search(node ** tree, char *val); 

#endif 
+1

這看起來非常好。你有什麼問題? –

+3

這可能更適合http://codereview.stackexchange.com/ –

+0

**是可疑:) – Alex

回答

1

正道「我不知道是什麼我做了以下的正確與否」

它。請注意,當您希望函數更改指針時,傳遞指針地址(即search函數採用node ** tree)是有意義的。語義,search似乎並沒有成爲這些功能:)

和小(而化妝品)的改善可能會改變一個:

struct bin_tree { 
    char serial[30]; 
    int socket; 
    struct bin_tree * right, * left; // <-- avoid declaring pointers this way 
}; 

typedef struct bin_tree node; 

成一個單一的typedef

typedef struct node { 
    char serial[30]; 
    int socket; 
    struct node * right; 
    struct node * left; 
} node; 
+0

它可以很好地'結構節點'而不是使用'typedef'和'struct'標記的不同名稱。 –

+0

@JonathanLeffler:這實際上很好,因爲*一致性*很重要:) – LihO