【问题标题】:error: too few arguments to function 'set_new_node'错误:函数“set_new_node”的参数太少
【发布时间】:2019-04-16 02:21:05
【问题描述】:

这个错误的所有其他线程要么在 C++ 中,要么是不同的情况,所以我要为它创建一个线程。尽管我为两个参数都提供了 NULL,但我收到了这个错误。 NULL 在这种情况下不起作用吗?

typedef struct set {
  struct set_node *head; 
}set_t;

typedef struct setnode{
  const char *key; 
  void *item;
  void *next;
}setnode_t;


set_t *set_new(void)
{
  //Creates NULL node
  set_t *set = count_malloc(sizeof(set_t));

  set->head = set_new_node(NULL, NULL);

  return set; 
}

static *setnode_t set_new_node(const char *key, void *item)
{
  setnode_t *node = count_malloc(sizeof(setnode_t));

  if (node == NULL) {                                                                                                                                                      
    return NULL;
  } else {
    node->key = key;
    node->item = item;
    node->next = NULL;
    return node;
  }
}

我得到的错误:

set.c:53:3: error: too few arguments to function 'set_new_node'
   set->head = set_new_node(NULL, NULL);

【问题讨论】:

  • 如果您在某些标头中有函数声明,请向我们展示声明。你的程序不完整。请始终提供MCVE

标签: c function object


【解决方案1】:

改变函数实现的顺序。

static *setnode_t set_new_node(const char *key, void *item)
{
  setnode_t *node = count_malloc(sizeof(setnode_t));

  if (node == NULL) {                                                                                                                                                      
    return NULL;
  } else {
    node->key = key;
    node->item = item;
    node->next = NULL;
    return node;
  }
}

set_t *set_new(void)
{
  //Creates NULL node
  set_t *set = count_malloc(sizeof(set_t));

  set->head = set_new_node(NULL, NULL);

  return set; 
}

在 C 中,函数实现的顺序很重要,或者将签名(static setnode_t *set_new_node(const char *key, void *item); 声明在 set_t *set_new(void) 实现之前)

【讨论】:

  • 我在 .h 文件中有签名
  • 操作.. 对不起。我尝试了您的代码(仅将 set_new_node 的“*”更改为:静态 setnode_t * set_new_node()),但没有收到此错误。
猜你喜欢
  • 2010-12-16
  • 2018-04-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多