cpp/preprocessor/line

Changes the source code's line number and, optionally, the current file name, in the preprocessor.

Explanation
1) Changes the current preprocessor line number to . Expansions of the macro __line__ beyond this point will expand to plus the number of actual source code lines encountered since.

2) Also changes the current preprocessor file name to . Expansions of the macro __file__ from this point will produce.

Any preprocessing tokens (macro constants or expressions) are permitted as arguments to as long as they expand to a valid decimal integer optionally following a valid character string.

must be a sequence of at least one decimal digit (the program is ill-formed, otherwise) and is always interpreted as decimal (even if it starts with ).

If is  or greater than, the behavior is undefined.