我在 autoconf 代码中看到很多关于被 dnl'ed 而不是 dnl'ed 的东西。什么是 dnl'ed?
问问题
1447 次
2 回答
7
来自GNU M4 1.4.13 宏处理器手册:
内置
dnl
代表“丢弃到下一行”:— 内置:dnl
所有字符,包括下一个换行符在内,都将被丢弃而不执行任何宏扩展。如果在没有换行符的情况下遇到文件末尾,则会发出警告。
的扩展
dnl
是无效的。它通常与 , 结合使用
define
,以删除调用 . 之后的换行符define
。因此define(`foo', `Macro `foo'.')dnl A very simple macro, indeed. foo ⇒Macro foo.
直到和包括下一个换行符的输入被丢弃,与处理评论的方式相反(参见评论)。
[...]
于 2009-10-27T19:25:17.970 回答
2
IIRC,dnl
是do-next-line
。它只是跳过当前行的其余部分。这就是您在 M4 文件中编写注释的方式。
dnl preprocessor will eat this
but not this dnl though this
将产生结果文档
but not this
(未经测试;也可能会终止空闲进程或使硬盘崩溃)。
于 2009-10-27T19:18:27.327 回答