2

我正在根据另一个文件(XML 文件)提供的信息生成 C 代码。某些 C 块包含在此 XML 文件中,应该逐字包含在我生成的 C 文件中。我希望使用#line 指令,这样如果这些块包含错误,用户将在 XML 文件中看到该块来自的行号。例如,我希望生成如下代码:

int main() {
   #line 35 "file.xml"
   ....
   #line
}

我希望以某种方式“关闭”#line 部分,我的意思是我认为如果有错误,例如关闭 } 并且由我的程序生成,用户不应该看到“file.xml 的第 36 行错误”,这对他们来说毫无意义并使他们感到困惑。

例如,我可以想象一个 #line 指令本身(如我的示例)会做类似的事情。但它不起作用,并且在 #line 的 gcc 文档中没有提到任何此类设施。

有没有我想念的这样的设施?还是我只是要求一些不存在的东西?你会怎么处理这样的问题?

4

1 回答 1

3

您需要对#line原始文件的行和文件名发出另一个指令“重置”。

于 2009-12-23T20:31:56.577 回答