我是C语言的新手,我无法正确编译此文件,您能帮我吗?
struct tagNode
{
int v, f;
struct tagNode *next;
struct tagNode( int _v )
{
v = _v;
next = NULL;
}
};
预期的标识符或“(int”之前的“(”: struct tagNode(int _v)
答案 0 :(得分:0)
期望的标识符或'('在'int'之前:struct tagNode(int _v)
这是因为在 C ++
中进行编译时出现了意外的 structC ++ 中的有效代码版本可以是:
struct tagNode
{
int v, f;
tagNode *next;
tagNode (int _v)
{
v = _v;
next = NULL;
}
};
但是
tagNode(int _v) : v(_v), next(NULL) {}
C 中没有构造函数/方法,因此 C 中的代码等效于:
#include <stdlib.h>
struct tagNode
{
int v, f;
struct tagNode * next;
};
struct tagNode * alloc(int _v)
{
struct tagNode * r = malloc(sizeof(struct tagNode));
r->v = _v;
r->next = NULL;
return r;
}