C 编译器错误";“形式参数列表中的名称非法”;

C 编译器错误";“形式参数列表中的名称非法”;,c,header,syntax-error,missing-data,C,Header,Syntax Error,Missing Data,我正在用C写一个程序,我有一些我不理解的错误。 这是我的main: #include "res.h" #include <stdio.h> #include <conio.h> int main(){ Kitchen List; char *name = "Productname"; float price = 5.6, qwan = 4; List.head = NULL; CreateProduct(name, price, qwan, &List);

我正在用C写一个程序,我有一些我不理解的错误。 这是我的
main

#include "res.h"
#include <stdio.h>
#include <conio.h>

int main(){
Kitchen List;
char *name = "Productname";
float price = 5.6, qwan = 4;
List.head = NULL;

CreateProduct(name, price, qwan, &List);



getch();
return 0;
}
我发现以下错误,我不明白原因:

Error   26  error C2143: syntax error : missing ')' before '*'
Error   27  error C2081: 'Kitchen' : name in formal parameter list illegal  
Error   28  error C2143: syntax error : missing '{' before '*'  
有人能帮我找出毛病吗?

更改:

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
致:

致:

或者最好:

Portion *newPortion = malloc(sizeof *newPortion);
更改:

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
致:

致:

或者最好:

Portion *newPortion = malloc(sizeof *newPortion);
更改:

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
致:

致:

或者最好:

Portion *newPortion = malloc(sizeof *newPortion);
更改:

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
致:

致:

或者最好:

Portion *newPortion = malloc(sizeof *newPortion);

你犯了一个常见的错误<代码>类型定义结构部分{}是一个自引用结构,因为它有一个类型为
结构部分的指针
*next
因此,当您将结构声明为

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
编译器还不知道
部分是什么类型

所以你必须声明它是

typedef struct Portion{
    char *pName;
    float pPrice;
    float pQuantity;
    struct Portion *next;
}Portion;

我宁愿将其定义为
部分
,而不是
部分
。对于
struct
s和
union
s是否应该使用
typedef
,这是一个非常矛盾的问题,因为作为一名独立开发人员,我需要知道它是
struct
还是
union
,你犯了一个常见的错误<代码>类型定义结构部分{}
是一个自引用结构,因为它有一个类型为
结构部分的指针
*next
因此,当您将结构声明为

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
编译器还不知道
部分是什么类型

所以你必须声明它是

typedef struct Portion{
    char *pName;
    float pPrice;
    float pQuantity;
    struct Portion *next;
}Portion;

我宁愿将其定义为
部分
,而不是
部分
。对于
struct
s和
union
s是否应该使用
typedef
,这是一个非常矛盾的问题,因为作为一名独立开发人员,我需要知道它是
struct
还是
union
,你犯了一个常见的错误<代码>类型定义结构部分{}
是一个自引用结构,因为它有一个类型为
结构部分的指针
*next
因此,当您将结构声明为

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
编译器还不知道
部分是什么类型

所以你必须声明它是

typedef struct Portion{
    char *pName;
    float pPrice;
    float pQuantity;
    struct Portion *next;
}Portion;

我宁愿将其定义为
部分
,而不是
部分
。对于
struct
s和
union
s是否应该使用
typedef
,这是一个非常矛盾的问题,因为作为一名独立开发人员,我需要知道它是
struct
还是
union
,你犯了一个常见的错误<代码>类型定义结构部分{}
是一个自引用结构,因为它有一个类型为
结构部分的指针
*next
因此,当您将结构声明为

typedef struct Portion{             
    char *pName;
    float pPrice;
    float pQuantity;
    Portion *next;
}Portion;
编译器还不知道
部分是什么类型

所以你必须声明它是

typedef struct Portion{
    char *pName;
    float pPrice;
    float pQuantity;
    struct Portion *next;
}Portion;

我宁愿将其定义为
部分
,而不是
部分
。对于
struct
s和
union
s,是否应该使用
typedef
,这是一个非常矛盾的问题,因为作为一名独立开发人员,我需要知道它是一个
结构体还是一个
联合体

,您需要指出这些错误发生在哪些行上。您需要指出这些错误发生在哪些行上。您需要指出这些错误发生在哪些行上。或者您需要指出这些错误发生在哪些行上。
typedef结构部分定义结构之前。更好的是-
部分*newparty=malloc(sizeof*newparty)或do
typedef结构部分定义结构之前。更好的是-
部分*newparty=malloc(sizeof*newparty)或do
typedef结构部分定义结构之前。更好的是-
部分*newparty=malloc(sizeof*newparty)或do
typedef结构部分定义结构之前。更好的是-
部分*newparty=malloc(sizeof*newparty)