
Chapter 4: Structural data type
1
Lecturer: PhD. DO Thi Ngoc Diep
SCHOOL OF ELECTRICAL AND ELECTRONIC ENGINEERING
HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY

2
Content
•4.1. Enum
•4.2. Struct
•4.3. Union and Bit Fields

3
4. 1. Enumeration type
•Enumeration is a user defined datatype in C
•whose range is a number of certain values that can be listed
•Definition of an enumeration
•Syntax 1: enum <type_name> { <list of values> };
•enum Animal { Cat, Dog, Tiger, Lion };
•enum dayInWeek {Mo, Tu, We, Th, Fr, Sa, Su};
•enum gender {M, F};
•Syntax 2: typedef enum {<list of values> } <type_name>;
•typedef enum {True, False} boolean;

4
4. 1. Enumeration type
•Enumeration variables
•Declaration and usage
•enum dayInWeek {Mo, Tu, We, Th, Fr, Sa, Su};
•enum dayInWeek dv;
•dv = We;
•enum dayInWeek {Mo, Tu, We, Th, Fr, Sa, Su} dv;
•dv = We;
•enum dayInWeek {Mo, Tu, We, Th, Fr, Sa, Su} dv;
•dv = We;
•typedef enum {True, False} boolean;
•boolean dv;
•dv = True;

5
4. 1. Enumeration type
•Enumeration variables
•Corresponding Values
•by default: integer constants: 0, 1, 2, ….
•can be explicitly set when defining.
•typedef enum {True, False} boolean;
•typedef enum {True=1, False=0} boolean;
•enum Colors {BLUE=1,RED=3,GREEN=2} c;

