错误:未知类型名称结构

the*_*ird 1 c

我正在尝试用 C 解决康威的生命游戏。我编写了一个包含所有函数的 .h 文件,但在头文件中收到以下错误:错误:未知类型名称“矩阵”

这是头文件的开头,其中包含我的结构声明和第一个函数:

#include<stdio.h>
#include<string.h>
#define MAX 1000
struct matrix{
    int Val, Next;
};
void intro_date(int nr_elem, matrix a[MAX][MAX]){
    int x,y;
    printf("Enter the line and the column of the element which you wish to read within the matrix: \n");
    while(nr_elem){
        scanf("%d%d",&x,&y);
        a[x][y].Val=1;
        --nr_elem;
    }
}
Run Code Online (Sandbox Code Playgroud)

dbu*_*ush 6

您定义了一个名为struct matrix. 这与 不同matrix,因为结构定义必须以struct关键字开头。

将您的函数定义更改为:

void intro_date(int nr_elem, struct matrix a[MAX][MAX])
Run Code Online (Sandbox Code Playgroud)

此外,您不应将代码放入头文件中。只有类型定义和声明属于那里。如果多个源文件包含此头文件,则为每个源文件创建的目标文件将包含该函数的副本intro_date()。尝试链接这些文件时,您将收到一条错误消息,指出intro_date()已重新定义。

的定义intro_date应该只存在于一个源文件中。然后标题将只包含声明。