about getting error as errorC129: missing ';' before '.'

Hi, I am using Keil uVision3 and have written code in C which includes three files as key.c,key.h and main.c. when I compile my code as error C129: missing ';' before '.' for the line exactly where I initialize my structure element to zero in key.c

My code is as follows:

File main.c


#include <REG51.H>
#include "key.c"

void main()
{
 key_task();

 while(1);
}

File key.h


#ifndef KEYPAD_H_INCLUDED
#define KEYPAD_H_INCLUDED

sbit ke1=P2^0;
sbit ke2=P2^1;
sbit ke3=P2^2;
sbit ke4=P2^3;


sbit ds0=P3^4;
sbit ds1=P3^5;
sbit ds2=P3^6;
sbit ds3=P3^7;


typedef struct
{
 unsigned char key_pres_cnt,key_rls_cnt,key_pres_flg,key_rls_flg,key_type,ket_status;
}key;

extern key k1,k2,k3,k4;


enum key_stat{no_key_pres,key_pres};


void key_task();



#endif /*KEYPAD_H_INCLUDED*/


File key.c


#include <REG51.H>
#include "key.h"


key k1,k2,k3,k4;


k1.key_pres_cnt=0;
k1.key_pres_flg=0;
k1.key_rls_cnt=0;
k1.key_rls_flg=0;



void key_task()
{
 //Logic for first key


 if(ke1==no_key_pres)
{
 if(k1.key_pres_cnt<10)

 k1.key_pres_cnt++;


 else
 {
  if(k1.key_pres_cnt)

  k1.key_pres_cnt--;

 }

 if(k1.key_pres_cnt>=10)
 {
  k1.key_pres_cnt=0;

  k1.key_pres_flg=1;
 }

 if(k1.key_pres_flg==1)

 ds0=0;


 if(ke1==key_pres)
 {
  if(k1.key_rls_cnt<10)

  k1.key_rls_cnt++;


  else
  {
   if(k1.key_rls_cnt)

   k1.key_rls_cnt--;

  }

  if(k1.key_rls_cnt>=10)
  {
   k1.key_rls_cnt=0;

   k1.key_rls_flg=1;

   k1.key_pres_flg=0;
  }

  if(k1.key_rls_flg==1)

  ds0=1;

 }
}
}



Please help me

Thanks in advance

More questions in this forum