default value for struct member in C

后端 未结 16 2257
-上瘾入骨i
-上瘾入骨i 2020-11-27 10:53

Is it possible to set default values for some struct member? I tried the following but, it\'d cause syntax error:

typedef struct
{
  int flag = 3;
} MyStruct         


        
16条回答
  •  猫巷女王i
    2020-11-27 11:45

    Structure is a data type. You don't give values to a data type. You give values to instances/objects of data types.
    So no this is not possible in C.

    Instead you can write a function which does the initialization for structure instance.

    Alternatively, You could do:

    struct MyStruct_s 
    {
        int id;
    } MyStruct_default = {3};
    
    typedef struct MyStruct_s MyStruct;
    

    And then always initialize your new instances as:

    MyStruct mInstance = MyStruct_default;
    

提交回复
热议问题