I suppose it's common nowadays
to think of return value
s as object
s, but the reality is that a return value is nothing more than a number
in a register
It doesn't 'go' anywhere, because it isn't a 'thing' that needs to exist such as matter or energy, it is a mere symbol
. It can
When you don't use the returned value of a function it simply sits around until the spot it's being stored in is reused for some other representation.
If you'd like to consider it in absolute physical terms, however, there is an electrical charge
pattern sitting in a bank of transistors into which the function places this number. The electrical charges come from other portions of the processor, and ultimately from a power source, such as a battery
or a generator
Since these registers are often implemented in a symmetric
fashion, a one is simply a positive charge on one transistor, while a zero is a positive charge on its twin. Thus it doesn't matter what representation is stored in that logic cell, if it doesn't change no charge is lost (excepting leakage current
), and when it does change a charge is lost and one is gained.
These charges are dumped straight to ground, or, in other words, head right back to the power source.
Of course, we could go into the whole "Charge is represented by moving electron
s, which actually pass from negative
, therefore charge actually starts out at ground and makes it way back to the top of the processor where it spews from the power pins into the power source."
But I find it confuses computer scientists.