如何在C表中使用char表中指定的名称创建变量?
类似的东西:
char name[];
gets(name[]);
int name[] = 0;
我希望你知道我的意思。
答案 0 :(得分:3)
C,与脚本语言不同,Python或您可能习惯使用的Ruby,不会被解释。在运行时,C没有像上述脚本语言那样的变量名查找表,这些信息在编译时被丢弃,因此,在运行时计算的任何名称都不能转换为地址。
最终,正如您所描述的那样,在编译语言中这是不可能的。但是,我们确实有一个替代方法,可以在集合中找到,例如vector和HashMaps,它们在运行时存储命名信息,允许我们访问它。不幸的是,C还没有这些的任何原生实现,但也有一些。
答案 1 :(得分:2)
你做不到。至少没有vanilla C语言功能。但请记住,C有pointers,有时可以做类似的事情。
如果指针不是您需要的,则必须实现hash map。更高级别的编程语言已内置,但C不支持。
你可以找到一个图书馆,但如果你这样做是为了学习,我会建议你自己恭维它。
答案 2 :(得分:1)
这可能就是你想要的。 C确实有一个预处理器表格形式的查找表,您可以在其中定义关键字以及与它们一起使用的文本,这些文本在编译时添加。因此,您可以在编译期间将名称或任何您想要的arg作为arg传递给程序,如果您正确编码,它将在编译阶段的预处理器部分将该名称附加到您的变量。预处理阶段是在顶部查看你的#include,以及诸如#ifndef ...#def,#if ...#endif等等,C preprocessor example