好的,我有一个名为main.c的主源、一个名为test.h的头文件和另一个名为handBeraknare.c的类。
我试图通过将我的一些方法转换到类handBeraknare.c,使我的代码更具可读性。
所以在main.c中,我有一个类似于这样的结构:

typedef struct kort{
  int draget;
  char farg;
  int nummer;
  struct kort *next;
  }kort; `

main.c中,我使用kort k=(kort*)malloc(sizeof(kort));创建了其中的两个,并将它们放入一个数组中。我试图实现的是将这个kort数组发送到handBeraknare.c中的函数,但我得到了某种奇怪的错误。
我说这和headerfile有关,现在知道什么是"in file included from handBeraknare.c"(我的结构)。不管怎样,这里有一些代码:
// in test.h
int beraknaFarg(kort kortHand[]);



// in handBeraknare.c
#include <stdio.h>
#include "test.h"
int beraknaFarg(kort kortHand[]){
 char c = kortHand[0].farg;
    int i;
    for (i=1;i<5;i++){
        if (kortHand[i].farg!=c){
                                 printf("inte färg");
                                 system("pause");
           //Spelaren har inte färg. Retunera 0
           return 0;
           }
         }
      //Spelaren har färg. Retunera 1
       printf("!!!!färg");
                                 system("pause");
      return 1;
}


//part of the main class. Calling function test()
// which calls the method beraknaHand which exists in handBeraknare.c

#include "test.h"
...

int main(int argc, char *argv[])
{
  test();
}

// the testfunction in my mainclass
void test(){
       char farg[4]={'S','K','R','J'};
       int nummer[14]={0,2,3,4,5,6,7,8,9,10,11,12,13,14};
       kort kortArray[52];
       kort kortHand[5];
                  kort *k;
                  k=(kort*)malloc(sizeof(kort));
                  k->farg='s';
                  k->nummer=5;
                  kortHand[0]=*k;

                  k->farg='s';
                  k->nummer=11;
                  kortHand[1]=*k;

                  k->farg='s';
                  k->nummer=12;
                  kortHand[2]=*k;

                  k->farg='s';
                  k->nummer=11;
                  kortHand[3]=*k;

                  k->farg='s';
                  k->nummer=9;
                  kortHand[4]=*k;
    beraknaFarg(kortHand);

最佳答案

让test.h读取

typedef struct kort{
      int draget;
      char farg;
      int nummer;
      struct kort *next;
      } kort;
int beraknaFarg(kort kortHand[]);

并将typedef从main.c中移除

09-25 22:09