错误:未知类型名称'记录'

时间:2013-10-05 18:41:11

标签: c struct void

这是我在codeblocks C语言中的代码 抱歉我是新来的

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

struct record
{
char name[50];
char id[30];
char course[7];
char project[100];
char field[3];
char supervisor[30];

};

struct record addname();
void list_func(record);

int main()
{
struct record student1,student2;

student1=addname();
student2=addname();

printf("\n\n\tUNDERGRADUATE PROJECT RECORD SYSTEM");
list_func(student1);
list_func(student2);

   getch();
}
struct record addname()
{
    struct record system;
    printf("\nEnter student's Name: ");
    gets(system.name);
    printf("Enter matrix's ID: ");
    gets(system.id);
    printf("Enter course's Name: ");
    gets(system.course);
    printf("Enter Project Title: ");
    gets(system.project);
    printf("Enter Field: ");
    gets(system.field);
    printf("Enter Supervisor's name: ");
    gets(system.supervisor);
    return (system);
}

void list_func(record list)
{
    printf("\n\nStudent's Name: %s",list.name);
    printf("\nMatrix ID: %s",list.id);
    printf("\nCourse: %s",list.course);
    printf("\nProject's Title: %s",list.project);
    printf("\nField: %s",list.field);
    printf("\nSupervisor: %s",list.supervisor);
    printf("\n");
    printf("\n------------------------------------------------");

   return;
}

好的,这是我的错误:

第17行,

void list_func(record);

第50行,

void list_func(record list)

它说

line 17    warning: parameter names (without types) in function declaration [enabled by default]
line 50    error: Unknown type name 'record'
           in function 'main'
line 31    warning: control reaches end of non-void function [-Wreturn=type]

严重的是我不明白为什么会这样。我使用我朋友的编码作为参考并将其更改为lil,然后无法调试。 我甚至将我朋友的代码复制并粘贴到我的codeblocks项目中,但它仍然无法运行 但它可以完美地运行在她的codeblocks项目中。 谁能帮我? 我编码不太好

2 个答案:

答案 0 :(得分:2)

void list_func(record); ==> void list_func(struct record);

避免前两个错误

只需在函数声明和defination中更改参数类型。

并避免警告

在main函数中的getch();之后添加以下语句。

return 0;

答案 1 :(得分:0)

将您的函数void list_func(record);定义为

void list_func(struct record);  

从功能return;中删除void list_func(record list)。您无法从void类型函数返回。也可以在return 0

的大括号之前添加main