Functions allow programmers to organize code into reusable blocks and improve modularity. A function is called by specifying its name followed by parentheses that may contain arguments. Functions communicate through parameters and arguments, which can be passed by value or by reference. Functions in C++ must be declared with a prototype or definition so the compiler knows the function exists before it is called.