I notice that your header inclusion guard is:

#ifndef Print
#define Print
Yet you also want to have a function named Print. I suggest that you fully capitalise macro names, and then incorporate...