为什么我在C中有此错误编译

对于给您带来的不便,我们深感抱歉,下面的代码对其进行了编译,并且可以正常工作,然后我关闭了我使用的(Geany)IDE中的所有打开的代码,当我再次编译时,一个错误,我不知道,因为它在编译时给了我这些错误:

我得到这些错误:

RevertirFrase.c:15:26: error: expected ';',',' or ')' before '&' token
RevertirFrase.c:44:4: warning: implicit declaration of function 'add' [-Wimplicit-function-declaration]

,代码为:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
struct reverse
{
char letra;
struct reverse *sig;
};
void add(struct reverse *&pila,int letra)
{
struct reverse *nuevoNodo=(struct reverse*)malloc(sizeof(struct reverse));
nuevoNodo->letra=letra;
nuevoNodo->sig=pila;
pila=nuevoNodo;
}
void show(struct reverse *letra)
{
struct reverse *ptr=NULL;
ptr=letra;
while(ptr!=NULL)
{
printf("%c",ptr->letra);
ptr=ptr->sig;
}
}
int main()
{
int esc;
printf("Ingresa la frase: \nPara finalizar pulsa ESC:\n");
struct reverse *nodo=NULL;
do{
fflush(stdin);
esc=getch();
printf("%c",esc);
if(esc!=27)
    add(nodo,esc);
}while(esc!=27);
show(nodo);
return 0;
}
tyh012 回答:为什么我在C中有此错误编译

违规行在这里:

void add(struct reverse *&pila,int letra)

在向编译器声明pila参数的类型为struct reverse *时,不需要(&)运算符的地址。

如果删除&运算符,则会编译代码。如果我是你,我会用stdio.h标头中的getchar替换getch,因为getch需要conio.h,它已经过时且非标准。

本文链接:https://www.f2er.com/3148332.html

大家都在问