Allow for modularization of programs - Logically separated, self-contained units - Reusable - Enable abstraction - hide internal mechanisms of code # Related Concepts - [[Function Prototypes]] - [[Function Parameters]] - [[Default Argument Values]] - [[Function Overloading]] - [[Passing Arrays to Functions]] - [[Pass by Value]] - [[Pass by Reference]] - [[Function Calls]] - [[C++ Functions]]