funcţii inline

funcţii inline

În Reamintind funcția, cel puțin în BBC la el a fost foarte rapid, nevoie de ceva timp. Modernul B au opțiunea de a declara funcții inline. Atunci când compilarea unui apel de funcție va fi înlocuit cu corpul ei.







Aici, pentru testare, GCC compilatorul utilizate atribute, care forța de inserție. Luați în considerare acest cod, care este compilat folosind inline

Și fără utilizarea (a se vedea funcția Apel în linia 10)

Funcții inline au o serie de dezavantaje. În primul rând, compilatorul poate refuza să pună în aplicare o funcție, în cazul în care reduce viteza de execuție. Reducerea se poate produce inclusiv datorită faptului că cache-urile de instruire se vor revărsa. În general, în linie ar trebui să fie mai degrabă privit ca un indiciu pentru compilator, nu un ghid de acțiune.







În al doilea rând, pentru sisteme integrate, în care diferite funcții pot fi plasate în diferite segmente de memorie, este inacceptabil, deoarece apelul nu poate avea loc în segmentul, care era de așteptat.

În al treilea rând, oferă o creștere destul de mică în performanță, dar complică optimizarea procesului de asamblare și de a crește timpul de compilare. În timpul unei legare (legătură externă) externă poate provoca, de asemenea, probleme în cazul în care funcția a fost declarată ca linie în fiecare unitate de compilare. Deci, de multe ori, de asemenea, funcții inline sunt declarate statice.

ru-Cyrl 18- tutorial Sypachev S.S. 1989-04-14 [email protected] studenți Stepan Sypachev

Încă nu este clar? - întrebări scrie pe cutie