2013-10-03 38 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