2

我想使用 perl 解析 C 程序文件(.c 扩展名)。我希望以这样的方式完成解析,例如示例 c 程序可能包含如下语句

printf ("%d => Hello",x);

令 x 为程序中的整数变量。所以当我解析上面的行时,有没有办法获得 x 值。请记住,我只想解析一行并获取 x 的值,我无法解析任何前面的行来获取 x 的值。有什么方法可以动态获取 x 的实际值,还是解析目标文件更好。

4

2 回答 2

11

世界上没有任何工具可以printf ("%d => Hello",x); 仅使用这条线可靠地找到 x 的值。该值取决于前面的行,并且可能取决于用户输入,这根本不在源代码中。

编辑

另一方面,有很多工具可以处理 C 代码,例如静态分析器、调试器、解释器等。您可能想要寻找这些选项之一。

于 2012-05-07T04:51:54.257 回答
7

不,想一想:

int x = rand();
printf("%d", x);

x如果不运行程序,你怎么可能知道是什么?

于 2012-05-07T05:12:25.267 回答