C Code (ANSI C89)