It not a matter of frustration, it's a matter of if you don't do as I say, then things will not work.
I carefully tried it all here, so that it would work, but then if you do not do it the same way there is no chance of it working.
We learn by pain sometimes. That is how we here all learned it. If you want to be an engineer, you have to endure the struggle. I have spent hours over some silly thing. In this case it did not work because of the order of includes it never saw the prototypes for the functions, because the firs file turned on ifdefs for other includes.
You need to be willing th check, double check and then check again. It's all in the details. I know you are learning, and I am tried to help you, and sometimes the student needs a bit of nagging.
If you cut and paste just what is in the box into notepad it should be fine. It also pasted into CW fine as well (yes, I even tried that too).
You will notice nobody else responded - perhaps they are wiser than me.