Q:

C Header Files - Correct Way to Include

I am trying to teach myself C Programming and I am using DevC++ for my IDE under Windows XP. I am a little confused on the correct way to call my own Header Files.
I have my main source file called main.c and a separate file for functions called myFunctions.c which I include in main.c using 'include "myFunctions.h" with all my function prototypes residing in this Header file.
myFunctions.c contains two functions one called showDate() and one called showScreen() and both functions can be called from main.c all well and good.
My problems started when I tried to call showDate() from within showScreen() and during compilation/linking it was complaining because I did not have a prototype inside myFunctions.c for showDate().
What I want to know is which of the following do I need to do?

include "myFunctions.h" inside myFunctions.c

Declare the Prototype in both myFunctions.h and myFunctions.c
Declare the prototype in just myFunctions.c only

All of the above seems to correct the compiler error and allow me to call the function bot from main.c and within myFunctions.c but I can not find a definitive source of which is the correct procedure.

A:

Use #1 -- #include in many places.
Never use #2 -- never declare anything more than once.
Rarely use #3 -- declare something in a .c file as if you're never going to reuse it.

A:

The header file should contain the prototypes. You then include it everywhere those prototypes are used, including the .c file that contains the function definitions.
BTW DecC++ is no longer being actively developed - you should consider switching to Code::Blocks instead.

A:

Definitely the first option.

