Originariamente inviato da shodan
Leggi qui.
http://www.umbertosorbo.it/wiki/inde...unzioni_inline
Grazie mille, molto interessante. L'ho inserito tra i preferiti: domani lo leggerò con più attenzione e tranquillità.

Originariamente inviato da MItaly
Serve a consigliare al compilatore di effettuare l'inlining della funzione, ossia di piazzare il suo codice macchina direttamente nel flusso di codice corrente senza stare a creare una funzione separata da chiamare con l'istruzione assembly CALL, evitando così l'overhead che si genera per ogni chiamata a funzione. Di fatto l'inlining viene impiegato spesso per funzioni brevi, mentre per funzioni più lunghe si utilizza la normale chiamata a funzione per evitare di ingigantire inutilmente l'eseguibile finale.
Quindi inline ha l'effetto di velocizzare l'esecuzione ma ingigantire l'eseguibile, mentre se non si utilizzasse inline, il programma sarebbe meno veloce ma più leggero, giusto?

Originariamente inviato da MItaly
codice:
a=2        ((a++)*(a++))
--- valuto il primo a++ ---
a=3        ((2)*(a++))
--- valuto il secondo a++ ---
a=4        ((2)*(3))
--- valuto l'espressione risultante ---
a=4        6
Dopo un po' di tempo a pensarci su, credo di aver finalmente capito. Un po' laborioso il ragionamento, a causa di quei ++, ma alla fine ho compreso. Grazie.

Un'ultima cosa: esaminando il codice sorgente di Blender, il programma di modellazione opensource, per pura curiosità, ho trovato le righe di codice che ho postato sopra... (ext)((void)NULL) a cosa serve?