我是C语言的新手,我无法正确编译该东西,您可以帮我吗?
struct tagNode
{
int v, f;
struct tagNode *next;
struct tagNode( int _v )
{
v = _v;
next = NULL;
}
};
预期的标识符或“(”在“ int”之前:
struct tagNode(int _v)
最佳答案
预期的标识符或“(”在“ int”之前:struct tagNode(int _v)
这是因为在C ++中进行编译时出现了意外的结构
C ++中代码的有效版本可以是:
struct tagNode
{
int v, f;
tagNode *next;
tagNode (int _v)
{
v = _v;
next = NULL;
}
};
但
f呢?
构造函数也可以是
tagNode(int _v) : v(_v), next(NULL) {}
并且您有一个指针,所以我建议您查看rule of three
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;
}
关于c - 在C中的链表,如何修复预期的标识符错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56405131/