Error: initializer element is not computable at load time

后端 未结 2 2327
忘掉有多难
忘掉有多难 2020-12-10 13:52

I have a function that takes a struct, and I\'m trying to store its variables in array:

int detect_prm(Param prm) {
  int prm_arr[] = {prm.field1, prm.field2         


        
相关标签:
2条回答
  • 2020-12-10 14:20

    This is illegal in C. Initializer lists must be constant compile time expressions. Do the following instead:

    int prm_arr[3];
    
    prm_arr[0] = prm.field1;
    prm_arr[1] = prm.field2;
    prm_arr[2] = prm.field3;
    
    0 讨论(0)
  • 2020-12-10 14:33

    Mike's answer is absolutely right.

    However, if you're able to use the GNU C extensions, or to use the newer and better C99 standard instead (use the --std=c99 option), then initializers such as this are perfectly legal. The C99 standard has been out for, well, 9 years, and most C compilers support it quite well... especially this feature.

    0 讨论(0)
提交回复
热议问题