When you use the #ifndef directive with a header file, along with #define right after (for the same header file), is it necessary to still include the #include directive for the same header file, or are they mutually exclusive?
Also, where should I use it? Do I just put #ifndef headerfilename at the beginning of my code (as you do with the #include directive), and #endif at the end of the whole program? Or am I supposed to use #endif right after I'm done using whatever functions the included header file contains?