Salve,
mi chiedevo se il valore delll'espressione di selezione di una switch viene valutato ad ogni clausola oppure viene memorizzato in una locazione di memoria e poi confrontato con le clausole, ovvero:

codice:
switch (funzione(parametro))
{
  case VALORE_1:
    ...
    break;
  case VALORE_2:
    ...
    break;
}
codice:
valore = funzione(parametro);

switch (valore)
{
  case VALORE_1:
    ...
    break;
  case VALORE_2:
    ...
    break;
}
i due codici sono identici? Cioe': nel secondo caso e' ovvio che il valore restituito dalla funzione viene memorizzato in una determinata locazione di memoria e poi le clausole della switch vengono confrontate con tale locazione; mentre quello che non mi e' chiaro e' se nel primo caso la funzione viene richiamata ad ogni clausola oppure all'inizio della switch il valore restituito dalla funzione viene temporaneamente memorizzato e poi confrontato con le clausole...