2. I want to put each function in a separate file. How do I go about in calling each file? Do I make a shell script?
You don't call files. You call functions. Every file gets turned into a binary object, and then all the binary objects get put together into the same executable.