title: Why do some functions in C have an underscore prefix?
body: <p>I recently started learning networking in C and I saw some functions that start with an underscore- like _function()- what does that mean exactly? I also saw this :</p>
  
  <pre><code> struct sockaddr_in  {  
  
  __SOCKADDR_COMMON (sin_);  
  
   in_port_t sin_port;    
  
   struct in_addr sin_addr;    
  
   unsigned char sin_zero[sizeof (struct sockaddr) - 
  
   __SOCKADDR_COMMON_SIZE -  
  
  sizeof (in_port_t) -         
  
  sizeof (struct in_addr)];  
  
  };
  </code></pre>
  
  <p>what does this parts of the code mean:</p>
  
  <pre><code>__SOCKADDR_COMMON (sin_);
  
  unsigned char sin_zero[sizeof (struct sockaddr) - 
  
   __SOCKADDR_COMMON_SIZE -  
  
  sizeof (in_port_t) -         
  
  sizeof (struct in_addr)];
  </code></pre>