C中全局变量的条件初始化

时间:2014-05-20 17:58:51

标签: c macros

我想在全局矩阵中进行条件初始化;有可能如下(伪代码)?请提出一些替代方案。

char a[][] = {{1,2,3,4},
#ifdef init
              {1,3,4,5}, // I want to make this conditional
#endif
              {1,4,5,6}
             }

main ()
{
    #define init 1;
}

1 个答案:

答案 0 :(得分:1)

使a成为全局指针,然后使用malloc有条件地初始化。

char **a;

int main()
{
    if (condition){
        a = malloc(some_size);
        //initialize the memory here
    }
    else {
        a = malloc(other_size);
        //or initialize differently here 
    }   

}