There are two forms of this directive:
#line constant #line constant "filename"
This directive tells the preprocessor to change the line number of the current file to constant, and optionally (in the second form) to also change the "filename". These two are used by the compiler for reporting errors and are available to the program via the predefined variables:
__LINE__ and __FILE__