我正在实现一些代码生成器,我想知道C中是否有任何方法,如果已经声明了变量?
我试图使用预处理器找到一些东西,但没有任何成功......
感谢。
答案 0 :(得分:5)
C是严格静态的,如果已经声明了变量,则无法“查找”。如果您正在创建代码生成器,为什么不读取代码行并查看已声明的内容?
答案 1 :(得分:1)
不,没有。这样做是编译器所做的大部分工作。
创建唯一变量名称的常用方法是使用非常不可能的变量名称,如果可能的话与行号结合使用。像
这样的东西// beware, brain-compile code ahead!
a_rather_unlikely_variable_name_by_sbi_ ## __LINE__
答案 2 :(得分:0)
不是,不。除非您计算使用它并查看代码是否编译,否则不会。
您可以尝试使用预处理器破解特定变量的某些内容,类似于每个包含文件顶部的标准#ifdef
。但是,这不会是范围感知的,因为预处理器在编译器之前运行。
C不是那种非常动态的语言。
答案 3 :(得分:0)
变量本身是由您的生成器生成的还是用户输入的内容?当你自己生成变量时,你可以发送一个预处理器标记和变量,然后检查该标记是否存在。
答案 4 :(得分:0)