c - 将结构作为参数的奇怪错误
问题描述
我收到以下非常奇怪的错误:
24 | void InitList(LinkList &L)
| ^
main.c:31:24: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
31 | void InitList(LinkList &L);
| ^
main.c: In function ‘main’:
main.c:36:5: warning: implicit declaration of function ‘InitList’ [-Wimplicit-function-declaration]
36 | InitList(&L);
| ^~~~~~~~
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode
{
int data;
struct LNode* next;
}*Link, *Position;
typedef struct LinkList
{
Link head,tail;
int len ;
}LinkList;
struct LNode* NewNode()
{
struct LNode* p;
p = (struct LNode*)malloc(sizeof(struct LNode));
p->next=NULL;
if (p == NULL)
exit(-1);
return p;
}
void InitList(LinkList &L)
{
Link p=NewNode();
L.head=L.tail=p;
L.len=0;
}
void InitList(LinkList &L);
int main()
{
int M,i;
LinkList L;
InitList(&L);
}
解决方案
引用是 C++ 的一个特性,而不是 C。您正在尝试接受对LinkList
.
推荐阅读
- c# - 这个语法是什么意思“if (value is bool v)”?
- angular - 如何选择Angular中的所有复选框?
- android - 添加 Admob 模块后反应本机“任务执行失败:':app:processDebugManifest'
- django - ValueError:服务器必须是 Flask 应用程序或布尔值
- google-analytics - 谷歌分析和数据洞察:如何显示同比增长百分比的时间序列
- java - Elasticsearch 乐观锁
- angular - 明确 Angular 中的安全导航运算符
- android - ItemDecoration - 如何创建垂直分隔线?
- typescript - “value”和“defaultValue”不会同时出现
- flutter - Flutter - 如何在不使用命名路由的情况下弹出两个屏幕?