在C中连接变量名?

Tyl*_*eat 8 c variables names

是否可以在C中连接变量名?具体来说,我有一个struct包含6个类似的变量在叫class1,class2,class3,等.

我想通过for循环来为每个变量分配一个值,但是如果没有以某种方式将变量名与for循环计数器的值连接起来,我看不出怎么做.

我怎么能这样做?

Sin*_*nür 45

当你发现自己为变量名添加一个整数后缀时,我应该使用一个数组.

struct mystruct {
    int class[6];
};

int main(void) {
    struct mystruct s;
    int i;
    for (i = 0; i < 6; ++i) {
        s.class[i] = 1000 + i;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

注意: C++编译器会因此而禁止此操作class.如果您计划将此代码编译为C++,则需要为该字段找出不同的名称.


Cha*_*lts 6

有动态语言,你可以做这种事情 - C不是这些语言之一.我同意思南 - 数组或STL向量是要走的路.

作为一个思想实验 - 如果你有100,000个变量,会发生什么?你有10万行代码来初始化它们吗?

  • 例如,+1 Perl允许您使用此类符号引用,但强烈建议不要使用它们.http://perl.plover.com/varvarname.html (2认同)