Copy Link
Add to Bookmark
Report

C++ Lezione 13: altro sulle funzioni

papero's profile picture
Published in 
LezioniC
 · 14 Aug 2021

La ragione per cui ho messo questo tutorial alla fine dell'elenco, piuttosto che fare un'aggiunta all'altra mia lezione, è semplice: non volevo farlo perdere alla gente che aveva già letto il primo!

Nella lezione 4 vi sono state fornite delle informazioni basilari sul tutorial. Comunque lascio fuori due argomenti di interesse. Primo, quando si dichiara una funzione non c'è bisogno di farne il prototipo! Tuttavia, si deve dare la definizione della funzione fisicamente prima di chiamare la funzione. Semplicemente digitate l'intera definizione della funzione dove mettereste normalmente il prototipo.

Per esempio:

 #include <iostream.h> 

void function(void) //Normalmente questo dovrebbe essere il prototipo.
//Non dimenticate di eliminare il ';'.
//Solo i prototipi lo utilizzano
{
cout<<"HA! NESSUN PROTOTIPO!";
}

void main()
{
function(); //Ora funziona come una qualsiasi funzione.
}

L'altro concetto di programmazione è la funzione inline. Le funzioni inline non sono così importanti, ma è bene comprenderle. L'idea di base è di salvare tempo al costo di spazio.

Come fa una funzione inline a rendere un programma più veloce? Come fa a renderlo più grande? Vi ricorda la relatività? Le funzioni Inline sono veramente molto simili a un segnaposto. Una volta definita una funzione inline utilizzando la parola chiave 'inline', ogni volta che viene chiamata questa funzione il compilatore sostituirà la chiamata alla funzione col codice attuale della funzione stessa. Come fa questo a rendere il programma più veloce? Semplice, le chiamate a funzione impiegano più tempo che non lo scrivere tutto il codice senza funzioni. Comunque, ripassare tutto il programma e rimpiazzare una funzione che avete usato 100 volte con il codice relativo alla funzione stessa, sarebbe uno spreco di tempo. Naturalmente, l'utilizzo della funzione inline per rimpiazzare le chiamate a funzione con il codice della funzione stessa, farà lievitare le dimensioni dell'eseguibile del vostro programma.

L'utilizzo della parola chiave inline è semplice, bisogna solo metterla prima del nome di una funzione. Poi, quando si usa questa funzione, fingete che non si tratti di una funzione inline.

Per esempio:

 #include <iostream.h> 

inline void hello(void) //usate semplicemente la parola chiave inline prima
//della funzione. Notare che è una funzione senza prototipo
{
cout<<"hello";
}

void main()
{
hello(); //Chiamatela come una funzione normale...
}

Ad ogni modo, una volta compilato il programma, la chiamata a hello(); sarà rimpiazzata con il codice della funzione.

UNA PAROLA DI AVVERTIMENTO: Le funzioni Inline sono veramente utili per risparmiare tempo, ma se le usate troppo spesso o con funzioni troppo larghe, otterrete un programma tremendamente largo. Alcune volte, programmi larghi possono essere meno efficienti, perciò gireranno più lentamente di prima. Le funzioni inline sono buone per piccole funzioni che vengono chiamate spesso.

In futuro tratteremo le funzioni inline riferite alle classi C++. Comunque, ora che avete capito il concetto, mi tornerà utile usare le funzioni inline in altri tutorial. A questo punto non è mia intenzione aggiungere qualcosa sulle classi che alcuni potrebbero perdersi facilmente se non capissero che le informazioni erano nel tutorial.

---
Nota: La mia homepage è http://www.cprogramming.com. La mia email è webmaster@cprogramming.com. Vi prego di mandarmi una email con commenti e/o suggerimenti. Se volete usare questo tutorial nel vostro sito, vi prego di mandarmi una email e dia aggiungere un link a http://www.cprogramming.com.
Grazie :)

← previous
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT