局部变量转换成全局变量?

时间:2012-07-17 19:27:55

标签: c regex shell

我在C文件中传递。 C文件包含包含局部变量的函数。给定任何C文件,我必须能够在特定方法(用户指定)中找到局部变量并使它们成为全局变量。 (另一个只能处理全局变量的应用程序的规范)......

最简单的方法是什么?它是通过shell脚本还是应该直接在C.我应该使用正则表达式吗?我想以错误的方式做这件事吗?

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

您正在寻找特定的变量上下文,在您的情况下,上下文是在函数内声明的局部变量。可以使用正则表达式来提取函数定义,但是某种令牌解析器会更好。

使用简化的C语法,可以发现你可以自己获取函数字符串,然后就可以找到局部变量本身。

但是,如果传入的C代码是特定格式,IE局部变量位于函数定义的顶部,那么可以使用简单的正则表达式。

答案 1 :(得分:1)

C99将允许在整个函数,块等内声明变量,因此识别它们的任务很复杂。有可能利用类似yacc和flex的词法分析器/解析器来标记C源文件,然后从生成的结构中提取变量声明。实现这一目标可能需要做很多工作。