// for passing an argument and receiving a return value uint64_t arg; void getui() { // implementation of subprogram getui } void puts() { // implementation of subprogram puts } void putui() { // implementation of subprogram putui } // some string (array of characters) char msg[] = "You typed: "; void main() { // local variable uint64_t n; // call subprogram getui, copy return value to local variable getui(); n = arg; // copy pointer to string literal to arg, call puts arg = msg; puts(); // copy local variable to arg, call putui arg = n; putui(); }