title: L_ macro in glibc source code
body: <p>I was reading through the source code of <a href="https://code.woboq.org/userspace/glibc/stdio-common/vfscanf.c.html#_M/L_" rel="nofollow noreferrer">glibc</a> and I found that it has two macros which have the same name<br/>
  This one is on the line 105<br/>
  <code>#define L_(Str) L##Str</code><br/>
  and this on the line 130<br/>
  <code>#define L_(Str) Str</code></p>
  
  <p>What do these macros really mean ? The usage is only for comparing two characters <br/>
  For example on line 494, you could see it is used for comparing character values between *f and '$' <br/>
  <code>if(*f == L_('$'))</code>. If we wanted to compare the two characters, we could have compared them directly, instead of directing them through a macro ? Also, what is the use case for the macro on line 105 ?</p>