title: Is it required to add 'extern C' in source file also?
body: <p>I found some code recently where extern "C" was added in source file also for functions. They were also added in the header files where they were declared.</p>
  
  <p>I was under the assumption that adding 'extern "C" in header files was sufficient. </p>
  
  <p>Where should extern "C" blocks be added?</p>
  
  <p>UPDATE:
  Suppose I am compiling my C code using a CPP compiler and have added extern "C" guards for all the functions in header files (i.e. all my functions have their prototypes in headers), but in source files I have not added the same. Will this cause a problem?</p>