Why should we typedef a struct so often in C?

后端 未结 15 2930
無奈伤痛
無奈伤痛 2020-11-21 23:58

I have seen many programs consisting of structures like the one below

typedef struct 
{
    int i;
    char k;
} elem;

elem user;

Why is i

15条回答
  •  一个人的身影
    2020-11-22 00:08

    In 'C' programming language the keyword 'typedef' is used to declare a new name for some object(struct, array, function..enum type). For example, I will use a 'struct-s'. In 'C' we often declare a 'struct' outside of the 'main' function. For example:

    struct complex{ int real_part, img_part }COMPLEX;
    
    main(){
    
     struct KOMPLEKS number; // number type is now a struct type
     number.real_part = 3;
     number.img_part = -1;
     printf("Number: %d.%d i \n",number.real_part, number.img_part);
    
    }
    

    Each time I decide to use a struct type I will need this keyword 'struct 'something' 'name'.'typedef' will simply rename that type and I can use that new name in my program every time I want. So our code will be:

    typedef struct complex{int real_part, img_part; }COMPLEX;
    //now COMPLEX is the new name for this structure and if I want to use it without
    // a keyword like in the first example 'struct complex number'.
    
    main(){
    
    COMPLEX number; // number is now the same type as in the first example
    number.real_part = 1;
    number.img)part = 5;
    printf("%d %d \n", number.real_part, number.img_part);
    
    }
    

    If you have some local object(struct, array, valuable) that will be used in your entire program you can simply give it a name using a 'typedef'.

提交回复
热议问题