Notes on typedef and struct
struct and typedef keywords.struct
To create a C structure, first create a new structure type:struct my_struct_tag
{
    int member1;
    float member2;
};Note that in the example above, the struct keyword is used only to create a new data type but it has not defined any variables yet.To define new varaibles of this structure type, do this:
struct my_struct_tag mystruct1; struct my_struct_tag mystruct2;
You can optionally combine these two steps and create the new data type and define variables:
struct my_struct_tag
{
    int member1;
    float member2;
} mystruct1, mystruct2;In this case the structure tag my_struct_tag is optional.typedef
From the K&R; book, thetypedef keyword is used to create new data type names. For example:typedef int Length;
The name
Length is a synonym for int and can be used as follows:Length len, maxlen;
The
typedef keyword can also be used to rename struct data types. Using the example above:typedef struct my_struct_tag MyStructType; MyStructType mystruct1; MyStructType mystruct2;This creates a new data type name,
MyStructType which is synonymous with the struct my_struct_tag data type, and then defines two variables, mystruct1 and mystruct2.You could combine the creation of the type name with the creation of the struct data type:
typedef struct my_struct_tag
{
    int member1;
    float member2;
} MyStructType;Like the previous example, this creates a new structure data type and creates a new type name, MyStructType which is synonymous with struct my_struct_tag. Like the combo example in the struct section above, the structure tag, my_struct_tag is optional. However, unlike that example, the identifier following the last curly brace (MyStructType) is the new type name and not a new variable. To define the variables, use:MyStructType mystruct1; MyStructType mystruct2;See also How to share non-global C data structures
Technorati tags: c

 
  
  
 