获取错误:在'SolvePrecondMatrix'之前预期'=',',',';','asm'或'__attribute__'

时间:2016-05-09 09:34:03

标签: c

当我尝试在putty中编译这个.c文件时,它会抛出这个错误:

  

在'SolvePrecondMatrix'之前预期'=',',',';','asm'或'属性'。

我不知道如何解决它。我在我的代码中检查了两次,我没有错过任何“;”但我不知道为什么。 任何人都可以帮助我。

#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<mpi.h>


#define EPSILON           1.0E-20
#define MAX_ITERATIONS 10000


/******************************************************************************/
void 
GetPreconditionMatrix(double **Bloc_Precond_Matrix, int NoofRows_Bloc, 
              int NoofCols)
{


    /*... Preconditional Martix is identity matrix .......*/
    int     Bloc_MatrixSize;
    int     irow, icol, index;
    double *Precond_Matrix;


    Bloc_MatrixSize = NoofRows_Bloc*NoofCols;


    Precond_Matrix = (double *) malloc(Bloc_MatrixSize * sizeof(double));


        index = 0;
    for(irow=0; irow<NoofRows_Bloc; irow++){
        for(icol=0; icol<NoofCols; icol++){
            Precond_Matrix[index++] = 1.0;
        }
    }
    *Bloc_Precond_Matrix = Precond_Matrix;
}
/******************************************************************************/
double 
ComputeVectorDotProduct(double *Vector1, double *Vector2, int VectorSize)
{
    int     index;
    double Product;


    Product = 0.0;
    for(index=0; index<VectorSize; index++)
        Product += Vector1[index]*Vector2[index];


    return(Product);
}
/******************************************************************************/
void 
CalculateResidueVector(double *Bloc_Residue_Vector, double *Bloc_Matrix_A, 
        double *Input_B, double *Vector_X, int NoofRows_Bloc int VectorSize, int MyRank)
{
    /*... Computes residue = AX - b .......*/
    int   irow, index, GlobalVectorIndex;
    double value;


    GlobalVectorIndex = MyRank * NoofRows_Bloc;
    for(irow=0; irow<NoofRows_Bloc; irow++){
        index = irow * VectorSize;
        value = ComputeVectorDotProduct(&Bloc_Matrix_A[index], Vector_X, VectorSize);
        Bloc_Residue_Vector[irow] = value - Input_B[GlobalVectorIndex++];
    }
}
/******************************************************************************/
Void
SolvePrecondMatrix(double *Bloc_Precond_Matrix, double *HVector, 
            double *Bloc_Residue_Vector, int Bloc_VectorSize)
{
    /*...HVector = Bloc_Precond_Matrix inverse * Bloc_Residue_Vector.......*/
    int index;


    for(index=0; index<Bloc_VectorSize; index++){
        HVector[index] = Bloc_Residue_Vector[index]/1.0;
    }
}

1 个答案:

答案 0 :(得分:1)

问题在于功能:

Void
SolvePrecondMatrix(double *Bloc_Precond_Matrix, double *HVector, 
        double *Bloc_Residue_Vector, int Bloc_VectorSize)

应该是:

void
SolvePrecondMatrix(double *Bloc_Precond_Matrix, double *HVector, 
        double *Bloc_Residue_Vector, int Bloc_VectorSize)

也就是说,您错误地将void大写为Void