我对C编程非常陌生。为我的班级做一个涉及链表的项目。我定义了一个名为node的结构,该结构代表一个节点,并且具有一个值和指向下一个节点的指针。
如果我希望方法的返回类型为node类型,我必须说
struct node* method_name(){}
或者我只能说
node* method_name(){}
?
答案 0 :(得分:0)
Due to how v-app works, the outer elements which contain margin are throwing off the calculations.
是类型定义的一部分,所以是的,您将不得不编写struct
由于这可能有点乏味,所以您也可以使用struct node* method_name(){}
关键字为您的类型设置别名。因此,如果您调用类型typedef
,则可以编写struct NODE
以使typedef struct NODE node
与node
相同,然后可以编写struct NODE
答案 1 :(得分:0)
这取决于您是否使用typedef
来定义结构。
如果您这样做是这样的:
struct node {
int value;
struct node *next;
};
然后是的,您必须将方法声明为struct node *method_name(){}
但是,如果您这样键入def结构:
typedef struct node {
int value;
struct node *next;
} node;
然后,您可以将函数名称声明为node *method_name(){}
。
结构本身的类型为struct node
,但是typedef
允许您将结构称为struct node
或仅称为node
。
答案 2 :(得分:0)
如果您使用的是typedef
,例如:
typedef struct
{
/* your structure */
} Node;
您可以使用Node
而无需编写struct
:
/* Declare node1 and node2 of type Node */
Node node1, node2;
Node * method_name(void);
返回“节点”结构的指针。
如果要返回一个节点(不是指针),则必须编写代码:
Node method_name(void);