اگه مشکل از prototype تعریف کردن باشه مشکلی نیست. چون کامپایلر به اینا گیر نمیده. اما اگر مشکل از تعاریفی باشه که ممکنه duplicate بشه براحتی میشه با پیش پردازش حلش کرد. نمونه:
فرض کنین فایل زیر رو به عنوان هدر myfile.h داریم:
extern int some_number;
typedef struct
{
char c;
}my_struct;
void some_func(void);
میبایستی یک سمبل مثل اسم فایل رو به صورت زیر به فایل اضافه کنیم:
#ifndef __myfile_h_included
#define __myfile_h_included
extern int some_number;
typedef struct
{
char c;
}my_struct;
void some_func(void);
#endif
حالا اگه در یک سورس شما صد مرتبه هم این فایل رو include کنین هیچ مشکلی پیش نمیاد.