In a modular language one could abandon the customer_underscore_hideous_C_crap and put it in a module, or use overloading so that customer is a parameter in to the function, and other functions can accept other parameters (structs) such as notcustomer.