在C中为变量名添加常量

时间:2017-12-12 09:42:25

标签: c variables concatenation

我想问的是,是否有办法声明一个带索引的变量(我通过我的程序)并将其附加到我的变量名称。一个例子可能是:

char mq_[index] = "Typical string";

其中char的名称为mq_1mq_2,等等。 这可能吗?

3 个答案:

答案 0 :(得分:3)

没有

执行C代码时(通常)不存在变量名,因为它们会被编译器删除。

C通常不是动态的"语言,您不能生成源并在运行时对其进行评估,因为典型的运行时环境不包含C编译器。

如果您想要一个可以索引的字符串数组,请使用字符串数组和索引:

const char *strings[] = { "Hello", "these", "are", "strings" };
const int index = 2;

puts(strings[index]);

这将打印are,即数组中的第三个元素。请记住,C数组从0开始索引。

答案 1 :(得分:1)

答案是否定的。除非声明变量extern以便链接器需要知道它,否则变量的名称在运行时对程序完全不可用(除了可能有调试器的符号表)。

如果您尝试向变量添加索引,为什么不使用数组呢?

答案 2 :(得分:1)

您无法动态定义变量名称。在您的情况下,您应该使用数组。

char *mq[] = {
    "Typical string",
    "Typical string",
    "Typical string"
};

printf("%s", mq[1]);