setting analog reference

I am trying to understand why calling the analogReference() does not set the ADMUX immediately, but waits until the next call to analogRead(). This seems to cause a bit of inefficiency if you are changing the value regularly and need to call and ignore analogRead() to set the ADMUX. The file says it will cause a short if an external source is on VREF hence not being set then, but I don’t see how this is any more dangerous than setting it in the analogRead() call. Or is analogReference() called earlier automagically somewhere I don’t see?

The Aref pin acts as both the INPUT to the reference voltage selector and the OUTPUT from the reference voltage selector. If you have a voltage source connected to the Aref pin and an internal voltage reference selected (AVcc or 1.1V) the internal and external voltage sources will be connected together. You should either supply an external reference and leave EXTERNAL selected forever or you should leave Aref unconnected and select DEFAULT (AVcc) or INTERNAL (1.1V).

sorry for the delay in response

anyways I belive you missed my question. let me leave out the fluff and make it one line:

What is the benift of analogReference() not setting ADMUX until the next call to analogRead()?

the note in the core library has a non-nonsensical explanation about shorts, coding it that way does not avoid shorts any more rigurously than the alternative of having analogReference setting ADMUX directly.