How to use structures in functions which is presented in another file..

Hi ....

     i m having a file called deque.c which contains structure deque and i pass the structure to function declaration push . the function push is defined in some other file .. and i added the header file also ..  i list the codings below... 

//deque.c
#include<stdio.h>
#include "deque.h"
#define MAX 100
#define MAX_FRONT 50
#define MAX_REAR 51
typedef struct deque
{
int element[MAX];
int front;
int rear;
};
int main()
{
int ch,ch1,ch2,ch3;
struct deque dq;
dq.front=-1;
dq.rear=101;
push(&dq,MAX_FRONT);
}

//deque.h
void push(

//deque_push.c
#include<stdio.h>
void push(struct deque *dq,int MAX_FRONT)
{
int n;
if(dq->front==MAX_FRONT)
{
printf("current postion of front: %d",dq->front);
printf("\nFront queue is full\n");
}
else
{
printf("current postion of front: %d",dq->front);
printf("\nEnter the element to insert in the front queue :");
scanf("%d",&n);
dq->front++;
dq->element[dq->front]=n;
}
}

when i compile the deque.c it will compile and shows the following warnings.
In file included from deque.c:3:
deque.h:1: warning: �struct deque' declared inside parameter list
deque.h:1: warning: its scope is only this definition or declaration, which is probably not what you want
deque_main.c: In function �main':
deque_main.c:47: warning: passing argument 1 of �push' from incompatible pointer type

when i compile the deque_push.c it ll shows the following error
error: dereferencing pointer to incomplete type

I request u to carify my doubts and i need the explanation for how to use the structure as parameter in a function which is presented in another file.

Thanks and Regards,
Karthik....