I tried to print the line number of the current code by using:
#include <stdio.h>
void err (char *msg)
{
    printf ("%s : %d" , msg , __LINE__);
}
int main ( int argc , char **argv )
{
    ERR ("fail..");
    return 0;
}
But i always get the wrong line number , it should be 10 instead of 5 , how can i fix this ?
Also i tried to use some macro:
#define ERR (msg) do { printf ("%s : %d\n" , msg , __LINE__); } while (0)
and result in error: msg not declared
 
     
     
     
     
    