【发布时间】:2011-12-15 11:32:01
【问题描述】:
假设一个文件已编译并处于运行模式,并且正在使用某个宏。有没有办法检查文件正在使用的宏的值。
例如,如果文件包含
-define(TIMEOUT,200).
如何从终端检查文件正在使用的 TIMEOUT 定义。
为什么我想要是因为假设文件处于运行模式并且我在两者之间更改了宏定义并且忘记了编译文件。我想确认它采用的是什么定义。
【问题讨论】:
假设一个文件已编译并处于运行模式,并且正在使用某个宏。有没有办法检查文件正在使用的宏的值。
例如,如果文件包含
-define(TIMEOUT,200).
如何从终端检查文件正在使用的 TIMEOUT 定义。
为什么我想要是因为假设文件处于运行模式并且我在两者之间更改了宏定义并且忘记了编译文件。我想确认它采用的是什么定义。
【问题讨论】:
即使在编译的最初阶段,宏也无法生存,因为预处理器会立即在源代码中替换它们。您必须定义和导出一个单独的函数来查看它们的值,例如:
macro_values() ->
[{'TIMEOUT',?TIMEOUT},...].
然后您可以从 shell 调用它并获取被替换的值。
【讨论】: