// First look at multi-file projects
// This code is an adaptation of a live stream on pointers and structs
//
// Marc Chee (cs1511@cse.unsw.edu.au), July 2019
//
// A header file like this contains information about a some code.
// It's usually enough to read this to be able to use the code
// without needing to actually delve into the C file.
#define MAX_NAME_LENGTH 50
#define MAX_POWER_LENGTH 50
#define MAX_NUM_POWERS 5
// This typedef declares that the type "Person" is the same as the type
// "pointer to struct person".
//
// The actual definition of "struct person" is not in person.h (this
// file), it's in person.c
//
// This means that you cannot directly access any of the fields of the
// person struct -- e.g. "person->name" is *invalid*.
typedef struct person *Person;
// Create a person and return a pointer to them
Person create_person(char name[MAX_NAME_LENGTH]);
// Free person frees any memory used for a person
void free_person(Person hero);
// give_power will add a power to a person
// It will add the string to the array of strings
// called powers if the person still has
// space to add powers
void give_power(char power[MAX_POWER_LENGTH], Person hero);
// Displays a person's information
void display_person(Person hero);
Resource created Friday 22 May 2020, 10:26:41 AM.
file: person.h