我想使用perl解析C程序文件(.c扩展名)。我希望解析以这样的方式完成,例如示例c程序可能包含类似
的语句printf ("%d => Hello",x);
让x为程序中的整数变量。所以当我解析上面的行时,有没有办法获得x值。记住,我只想解析一行并得到x的值,我无法解析任何前面的行来获得x的值。有没有办法动态获取x的实际值,或者解析对象文件是否更好。
答案 0 :(得分:11)
世界上没有工具只能使用行printf ("%d => Hello",x);
可靠地找到x的值。该值取决于之前的行,也可能取决于用户输入,而根本不在源代码中。
修改强>
另一方面,有很多工具可以使用C代码,例如静态分析器,调试器,解释器等。您可能希望寻找其中一个选项。
答案 1 :(得分:7)
没有。想一想:
int x = rand();
printf("%d", x);
如果没有运行程序,你怎么可能知道x
是什么?