struct

struct [tag] {member-list} [declarators];

[struct] tag declarators**;**

The struct keyword defines a structure type and/or a variable of a structure type. See Anonymous Structures and Unsized Array in a Structure for more information.

A structure type is a user-defined composite type. It is composed of "fields" or "members" that can have different types.

In C++, a structure is the same as a class except that its members are public by default.

Using a Structure

In C, you must explicitly use the struct keyword to declare a structure. In C++, this is unnecessary once the type has been defined.

You have the option of declaring variables when the structure type is defined by placing one or more comma-separated variable names between the closing brace and the semicolon.

For related information, see class, union, and enum.

Example 1

struct PERSON              // Declare PERSON struct type
{
   int   age;              // Declare member types
   long  ss;
   float weight;
   char  name[25];
} family_member;           // Define object of type PERSON

   struct PERSON sister;   // C style structure declaration
   PERSON brother;         // C++ style structure declaration

   sister.age  = 13;       // assign values to members
   brother.age =  7;

Structure variables can be initialized. The initialization for each variable must be enclosed in braces.

Example 2

struct POINT            // Declare POINT structure
{
   int x;               // Define members x and y
   int y;
} spot = { 20, 40 };    // Variable spot has
                        //     values x = 20, y = 40
struct POINT there;     // Variable there has POINT type
struct CELL             // Declare CELL bit field
{
   unsigned character  : 8;  // 00000000 ????????
   unsigned foreground : 3;  // 00000??? 00000000
   unsigned intensity  : 1;  // 0000?000 00000000
   unsigned background : 3;  // 0???0000 00000000
   unsigned blink      : 1;  // ?0000000 00000000
} screen[25][80];       // Array of bit fields