我是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/

10-13 07:37