Molto probabilmente è implementato come (o una sua variante):
void print_fibs()
{
}
int ignore = (print_fibs(), 0);
int main() {}
In questo codice, la variabile globale ignoredeve essere inizializzata prima di entrare in main()funzione. Ora, per inizializzare il globale, print_fibs()deve essere eseguito dove puoi fare qualsiasi cosa: in questo caso, calcola i numeri di Fibonacci e stampali! Una cosa simile che ho mostrato nella seguente domanda (che avevo chiesto tempo fa):
Notare che tale codice non è sicuro e dovrebbe essere evitato in generale. Ad esempio, l' std::coutoggetto potrebbe non essere inizializzato quando print_fibs()viene eseguito, in tal caso cosa farebbe std::coutnella funzione? Tuttavia, se in altre circostanze, non dipende da tale ordine di inizializzazione, è sicuro chiamare le funzioni di inizializzazione (che è una pratica comune in C e C ++).