How to initialize a struct in accordance with C programming language standards

前端 未结 15 2669
予麋鹿
予麋鹿 2020-11-21 22:59

I want to initialize a struct element, split in declaration and initialization. This is what I have:

typedef struct MY_TYPE {
  bool flag;
  short int value;         


        
15条回答
  •  礼貌的吻别
    2020-11-22 00:05

    This can be done in different ways:

    MY_TYPE a = { true, 1, 0.1 };
    
    MY_TYPE a = { .stuff = 0.1, .flag = true, .value = 1 }; //designated initializer, not available in c++
    
    MY_TYPE a;
    a = (MY_TYPE) { true,  1, 0.1 };
    
    MY_TYPE m (true, 1, 0.1); //works in C++, not available in C
    

    Also, you can define member while declaring structure.

    #include 
    
    struct MY_TYPE
    {
        int a;
        int b;
    }m = {5,6};
    
    int main()
    {
        printf("%d  %d\n",m.a,m.b);    
        return 0;
    }
    

提交回复
热议问题