#ifndef MyHeaderFilesUniqueName_h_
#define MyHeaderFilesUniqueName_h_
// Above are the guarding statements.
// These prevent multiple inclusion of headerfiles
// and will spare you from very strange compile and link errors!
//the code
extern double H1[N];
/* this makes the array H1 available in all files that include this header file.
The array isn't defined here (meaning no memory is allocated here) It's just a definition that somewhere out there in your code, there is an array defined with the name H1. The linker will look for it at link time. When it isn't found anywhere, it gives link errors!
A good guideline in C++ is to use as less global variables as possible. /*
void con(double *x);
/* This is what's called a function prototype. It merely describes that a function like this is available somewhere and can be used. The linker will look for this function and give a link error when it isn't found! */
#endif // MyHeaderFilesUniqueName_h_