誰か知識を貸してください!

#ifndef __INITIALIZATION
#define __INITIALIZATION
#include "main.h"
void initialization(MAIN_DATA*data);
#endif

をコンパイルすると
e:###initialization.h(6): error C2065: 'MAIN_DATA' : 定義されていない識別子です。
e:###initialization.h(6): error C2065: 'data' : 定義されていない識別子です。
e:###initialization.h(6): error C2182: 'initialization' : 'void' 型が不適切に使用されています。
となりました。
ソースの方は↓でコンパイルは通ります。
void initialization(MAIN_DATA*data)
{
......
}

main.hの中には
typedef struct_MAIN_DATA
{
......
}MAIN_DATA;
としています。

助けてエロイ人。