我在一个 C 文件中传递。C 文件包含包含局部变量的函数。给定任何 C 文件,我必须能够在特定方法(用户指定)中找到局部变量并使它们成为全局变量。(另一个只能处理全局变量的应用程序的规范)...
最简单的方法是什么?是通过 shell 脚本还是应该直接在 C 中。我应该使用正则表达式吗?我是否正在考虑以错误的方式做这件事?
任何帮助,将不胜感激
您正在寻找变量的特定上下文,在您的情况下,上下文是在函数内部声明的局部变量。正则表达式可用于提取函数定义,但某种标记解析器会好得多。
使用 C 的简化语法可以发现,您可以自己获取函数字符串,并从那里可以找到局部变量本身。
但是,如果传入的 C 代码采用特定格式,IE 局部变量位于函数定义的顶部,则可以使用简单的正则表达式。
C99 将允许在整个函数中、在块内等声明变量,因此识别它们的任务很复杂。可以利用 yacc 和 flex 之类的词法分析器/解析器来标记 C 源文件,然后从生成的结构中提取变量声明。实现这个通用目的可能需要做很多工作。