struct STRUCT { member1type member1; member2type member2; };usage in declarations and definitions requires keyword
struct
in C (recommended to C++ too)
struct STRUCT s;
typedef
can be used to shorten
declarations and definitions
typedef struct STRUCT Struct; Struct s;
typedef
and struct
declarations can be combined into one construct
typedef struct STRUCT { member1type member1; member2type member2; } Struct;
struct
declaration
needs no name
typedef struct { member1type member1; member2type member2; } Struct;
Definition of pointer to structure type
typedef struct STRUCT { member1type member1; member2type member2; } *Struct; // usage in application Struct s; // variable of pointer type, not structure typePointer to structure is efficient in passing parameters, but definition of pointer to structure type leads many confusion and require manual memory allocation. With the introduction of reference variable, its usage is less popular.
Struct s[STRUCTNUM]; Struct *p = s; p++; // point to (s+sizeof s) = s[1]Index