以下行是做什么的?
#line 25 "CSSGrammar.y"
那么扩展是什么?
最佳答案
根据标准:
§16.4.3:
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). If the digit sequence specifies zero or a number greater than 2147483647, the behavior is undefined.
§16.4.4:
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.
§16.4.5:
A preprocessing directive of the form
# line pp-tokens new-line
(that does not match one of the two previous forms) is permitted. 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). If the directive resulting after all replacements does not match one of the two previous forms, the behavior is undefined; otherwise, the result is processed as appropriate.
.y
扩展名正是作者选择使用的,也许是为了表明它是一个 YACC 文件(“语法”一词也指出了这一点,尽管这只是一个猜测) .
关于c++ - #line 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152854/