我需要一个方法来提取C源代码中函数内的所有局部声明变量的列表及其行号。有没有可能……在局部变量声明之后,我需要这个列表来添加和初始化存根变量。
在C程序的上下文中?
。局部变量实际上并不"存在"。用C代码。它们都是为了程序员的方便而构造的。这是因为人类在记忆随机64位数字和可变长度机器操作码方面真的很糟糕。
你可以通过外部工具来实现,但是这些工具在编译时不起作用,也不能改变编译后的代码。
你问的是"反射",而C基本上有零反射特性。有些东西要么被定义并编译,要么没有定义也没有。没有办法询问是否定义了某些函数或变量并改变代码的行为。
您唯一拥有的工具是用于预处理的#define
宏,虽然您可以使用这些宏非常有创意和狡猾,但您可以做什么,更重要的是,应该做什么是有限的。