i´m compiling a c++ program which uses some C libraries (pc.h, bios.h) in GCC 3.2 and the linker fails with "multiple redefinition" error in many of my program functions (seems a conflict between .cpp and .h files)

what is #ifdef c_plus_plus and extern "c"?

can be avoided the problem with this definitions?

thank you.

also, give some recommendation on general .h and .cpp coding conventions such as using, for example,

#ifndef __PROG_H__
#include __PROG_H__
#endif