变量,带有char []名称

时间:2014-01-21 00:26:37

标签: c

如何在C表中使用char表中指定的名称创建变量?

类似的东西:

char name[];
gets(name[]);
int name[] = 0;

我希望你知道我的意思。

3 个答案:

答案 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

相关问题