Why do I get an error about the initializer not being a constant?

后端 未结 6 1830
失恋的感觉
失恋的感觉 2021-01-17 17:49

I am using the following code.

const int X_ORIGIN = 1233086;             
const int Y_ORIGIN = -4728071;              
const int Z_ORIGIN = 4085704;
const in         


        
6条回答
  •  抹茶落季
    2021-01-17 18:16

    You can't do this at global scope in C, only at local scope, i.e. within a function:

    #define NUM_DIMENSIONS 3
    
    const int X_ORIGIN = 1233086;             
    const int Y_ORIGIN = -4728071;              
    const int Z_ORIGIN = 4085704;
    
    const int xyzOrigin[NUM_DIMENSIONS] = {X_ORIGIN, Y_ORIGIN, Z_ORIGIN}; // FAIL
    
    void foo(void)
    {
        const int xyzOrigin[NUM_DIMENSIONS] = {X_ORIGIN, Y_ORIGIN, Z_ORIGIN}; // OK
    }
    

    Alternatively you could compile the code as C++ rather than C.

提交回复
热议问题