c++cc-preprocessorline-numbersdynamic-compilation

C/C++ line number


In the sake of debugging purposes, can I get the line number in C/C++ compilers? (standard way or specific ways for certain compilers)

e.g

if(!Logical)
    printf("Not logical value at line number %d \n",LineNumber);
    // How to get LineNumber without writing it by my hand?(dynamic compilation)

Solution

  • You should use the preprocessor macro __LINE__ and __FILE__. They are predefined macros and part of the C/C++ standard. During preprocessing, they are replaced respectively by a constant string holding an integer representing the current line number and by the current file name.

    Others preprocessor variables :


    Your code will be :

    if(!Logical)
      printf("Not logical value at line number %d in file %s\n", __LINE__, __FILE__);