C 我不断收到预期的编译错误‘’;,标识符或‘;(’;在‘;void’;void*流道之前(void*参数)

C 我不断收到预期的编译错误‘’;,标识符或‘;(’;在‘;void’;void*流道之前(void*参数),c,compiler-errors,C,Compiler Errors,我正在尝试编译这个c程序,它使用线程将多个矩阵组合在一起。但是我一直遇到这个错误 应为“;”、标识符或“(”在“void”之前 无效*流道(无效*参数) 下面是它所指的代码 //The thread will begin control in this function void *runner(void *param) { struct v *data = param; int n, sum = 0; for(n = 0; n < X; n++) {

我正在尝试编译这个c程序,它使用线程将多个矩阵组合在一起。但是我一直遇到这个错误

应为“;”、标识符或“(”在“void”之前 无效*流道(无效*参数)

下面是它所指的代码

//The thread will begin control in this function
void *runner(void *param)
{
    struct v *data = param;
    int n, sum = 0;

    for(n = 0; n < X; n++)
    {
            sum += a[data->i][n] * b[n][data->j];
    }

    c[data->i][data->j] = sum;

    pthread_exit(0);
}


void *runner(void *param);
//线程将在此函数中开始控制
无效*流道(无效*参数)
{
结构v*数据=参数;
int n,和=0;
对于(n=0;ni][n]*b[n][数据->j];
}
c[数据->i][data->j]=总和;
pthread_退出(0);
}
void*runner(void*param);

我认为您应该在实现之前声明函数,或者将其放在头文件中。

错误一定在前面的行中,也许您忘记了用分号结束
struct
定义。
void*runner之前的最后一个非注释、非空白行是什么(…
?如果是
#include
指令,所包含文件中最后一个非注释、非空白后处理文本行是什么?相关的,文本
void*runner(void*参数)有两个实例
在发布的代码中,您从未提到哪一个传递了您得到的错误。后者是一个原型,坦率地说属于正式定义之前;而不是之后。而且,与此无关的是,您声称返回
void*
的函数从来没有这样做过。@Pablo我发现了问题所在,我在u中缺少了一个分号谢谢你的提示!