title: Is it good practice to have the same function names in multiple header files?
body: <p>I'm writing a userland in C (be it minimal at the moment) and I'm making it like BusyBox where you can run a command by invoking a symlink with its name. I've got a "main" C file which includes all the other files inside it (the other files are header files) and then runs their code if the symlink name matches. I was wondering whether it is deemed OK to have functions with the same name across different header files?</p>
  
  <p>For example, if I had <code>thing1.h</code>:</p>
  
  <pre><code>void help(void)
  {
      // Print help text for thing1
  }
  
  int thing1(int argc, char *argv[])
  {
      if (something)
          help();
  }
  </code></pre>
  
  <p>And <code>thing2.h</code>:</p>
  
  <pre><code>void help(void)
  {
      // Print help text for thing2
  }
  
  int thing2(int argc, char *argv[])
  {
      if (something)
          help();
  }
  </code></pre>
  
  <p>And <code>everything.c</code>:</p>
  
  <pre><code>#include "thing1.h"
  #include "thing2.h"
  
  int main(int argc, char *argv[])
  {
      if (something)
          thing1(argc, argv);
      else
          thing2(argc, argv);
  }
  </code></pre>
  
  <p>Would it be better to rename those help functions to <code>thing1_help</code> and <code>thing2_help</code> respectively, or is it OK to leave them as they are?</p>