title: Can func get the lineno who call itself? (C/C++)
body: <p>I've a problem , as the following code discribe itself. <br></p>
  
  <pre><code>1  #include&lt;stdlib.h&gt;
  2  #include&lt;stdio.h&gt;
  3  void log()
  4  {
  5         printf("Log [Line:%d]\n",__LINE__);
  6  }
  7  int main()
  8  {
  9         log();
  10        log();
  11 }
  </code></pre>
  
  <p>The expected result is <br>
  Log [Line:9] <br>
  Log [Line:10] <br>
  But, the fact is<br>
  Log [Line:5] <br>
  Log [Line:5] <br></p>
  
  <p>No surprising, <strong>LINE</strong> has been substituted at the pre-process stage as 5. <br>
  My Question is, how to design the log function to get the expected result? <br>
  Thanks!</p>