um..i split up a code into two .c files and one .h file and am getting the above mentioned error in the title,it runs fine when it is not split up,could someone tell me what am doing wrong:

driver.c file
Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include "guessgame2.h"


void play(int,int,int[],score,FILE *, score,FILE *);


int main()
{
    FILE *newfile, *read;
    score newscore;
    score oldscore;
    int allscores[3]={0};
    int number, guess;
    int correct;


    correct =1;




srand(time(NULL));
number = rand()%10+1;//%32767 + 1;










     printf("Welcome to the guessing game\n\n");


    if(read = fopen("gameinfo.txt","r"))          //read the previous scores from file
	{


        fscanf(read,"%d %d %d", &oldscore.attempts, &oldscore.higher, &oldscore.lower);
        printf("\n\nPrevious high score.\n\n");
        printf("Attempts\t\t%d\n\nToo High\t\t%d\n\nToo Low\t\t\t%d",oldscore.attempts,oldscore.higher,oldscore.lower);


	}


   play(guess,number, allscores, newscore, read,oldscore,newfile); //checks if number entered by user is higher or lower than the current number and also checks if the
                  																	//newscore is higher than the old score


   getch();






return 0;
}

this is the guessgame2.c file

Code:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include "driver.c"
#include "guessgame2.h"








void play(int guess,int number,int allscores[],score newscore,FILE *  read, score oldscores,FILE * newfile)   //function call
{
	      //points to the file that stores all number entered by the user
   int copy=0,prev;
        //open file for writing




	do
   {




	printf("Please enter your number\n");                                                                                 //outputs previous score by the user
   scanf("%d",&guess);
   system("CLR");
   printf("\n\n");
















   allscores[0]++;
      if(guess < number)
       {
         printf("this is too low. Please retry\n\n");    //increments each time the number is lower than the computer's number


         allscores[1]++;


        }
        if(guess>number)
        {
             printf("this is too high. Please retry\n\n");     //increments each time the number is higher than the computer's number


             allscores[2]++;
        }
    }while(guess!=number);
    if(guess==number)
    {


      newscore.attempts = allscores[0];
      newscore.lower = allscores[1];           //assigns all the current scores to the newscore variables
      newscore.higher = allscores[2];
      printf("congrats you got it right\n\n");
      printf("Thank you for playing here is your score.\n\n");
      printf("Attempts\t\t%d\n\nToo High\t\t%d\n\nToo Low\t\t\t%d",newscore.attempts,newscore.higher,newscore.lower); //outputs the newscores
    }






     if(allscores[0]<=oldscores.attempts)
      {




          fclose(read);
          newfile=fopen("gameinfo.txt","w");            //writes the newscores to file




            fprintf(newfile,"%d ",newscore.attempts);
            fprintf(newfile,"%d ",newscore.higher);
            fprintf(newfile,"%d \n",newscore.lower);
      }


 }

this is my guessgame2.h file

Code:
#define GUESSGAME2_H






typedef struct
{
        int attempts;
        int higher ;
        int lower;
}score;