What happens if using se the guard? The functions prototype will be there. It won't generate any error but simply increase the compile time overload. Is that it?
The guard means that the functions in the header will only be defined once. Redefining a function (ie the compiler sees the prototype or the definition more than once) gives an error. With the header guard, the compiler will only see the prototypes once and then they'll be publicly accessible.