Implementing State Machines
with Examples in C |
Prof. David Bernstein
|
Computer Science Department |
bernstdh@jmu.edu |
Aside: Enumeration constants have the values \(0, 1, \ldots, n-1\)
which allows us to use the _NUMBER_OF_
idiom.
Note: All of the functions and enumerations have file scope.
if
statementsswitch
statements (see below)switch
Statementsswitch
Statements (cont.)
Note: current_state
has file scope and internal linkage
(because it is decalred to be static
)
switch
Statementsstruct
is used
Note: default_event_handler
, default_action
and default_state
are extern
because they
must be declared in the scope of each individual state but are defined
in states.c
.
Note: Each of the individual states are extern
because,
though they are declared here, they are defined in the header files
for the individual states.
closed.h
and
closed.c
switch
statements?