glassMonk
Объяснить нетрудно - писать долго...
Кратко говоря, это интерфейсная часть. Когда ты включаешь h-файл в c- или cpp-файл, компилятор узнаёт из него какие переменные и какого типа ты можешь использовать, какие функции можешь вызвать, какого типа значение они возвращают, сколько параметров и какого типа ожидают. Там могу быть объявлены классы и определены макросы. В общем это особенность языка программирования. В паскале каждый юнит может содержать две части: intreface и implementation (опустим initialization и finalization). Так сказать два в одном - и интерфейсная часть и исполняемая. А в си эти части разделили и стали писать в разных файлах: исполняемую в файлах с расширением c или cpp (вроде исодник), а интерфейсную в файлах с расширением h (наверное от header). Если чего ещё - стучись. Здесь или на мыло...