6.10.4 Line control

Previous Table of Contents "New C Standard" commentary

1985 The string literal of a #line directive, if present, shall be a character string literal.

1986 The line number of the current source line is one greater than the number of new-line characters read or introduced in translation phase 1 (5.1.1.2) while processing the source file to the current token.

1987 A preprocessing directive of the form

  # line digit-sequence new-line

causes the implementation to behave as if the following sequence of source lines begins with a source line that has a line number as specified by the digit sequence (interpreted as a decimal integer).

1988 The digit sequence shall not specify zero, nor a number greater than 2147483647.

1989 A preprocessing directive of the form

  # line digit-sequence "s-char-sequenceopt" new-line

sets the presumed line number similarly and changes the presumed name of the source file to be the contents of the character string literal.

1990 A preprocessing directive of the form

  # line pp-tokens new-line

(that does not match one of the two previous forms) is permitted.

1991 The preprocessing tokens after line on the directive are processed just as in normal text (each identifier currently defined as a macro name is replaced by its replacement list of preprocessing tokens).

1992 The directive resulting after all replacements shall match one of the two previous forms and is then processed as appropriate.

Next

Created at: 2008-01-30 02:39:45 The text from WG14/N1256 is copyright © ISO