Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

[Guida] Al C++ Parte 2.

WarRock Hacks Coder
Messaggi: 940
Discussioni: 47
Registrato: 03-2011
Mix: 0
(22/07/2011, 12:44)Luxor Ha scritto:

[Per vedere i link devi REGISTRARTI.]

Piu che altro per comodità.. senza stare a pensare se usare void o int.. vai con int e vai sul sicuro

Precisando, come ha già fatto Digger, che potresti aver davanti un compilatore di quello più precisino/perfettino/permaloso/infame/caino di un'ingegnere donna della motorizzazione quando devi fare l'esame di guida della patente e potrebbe lamentarsi se manca il valore di ritorno Asd

22/07/2011, 13:07
#16
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 22/07/2011, 15:04 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
ahah sky, bella l'ultima similitudine circa la donna della motorizzazione Smile

volendo aggiungere qualcosina alla questione dell'int di ritorno, cosi tanto per arricchire le conoscenze di chi è interessato, questo è il programma con l'int di ritorno

int main()
{
return (100);
}


00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. B8 64000000 MOV EAX,64
00401008 |. 5D POP EBP
00401009 \. C3 RETN


questo è il programma senza int di ritorno:

main()
{
}

00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. 33C0 XOR EAX,EAX
00401005 |. 5D POP EBP
00401006 \. C3 RETN


ora, chiariamo come ragiona l'eseguibile, il valore di ritorno del programma eseguito viene messo nel registro EAX poco prima di uscire dal codice, quindi tralasciando le altre istruzioni che non ci interessano ora, la differenza tra i due programmi è questa:

ritorna int di valore 100 (64 esadecimale) :
MOV EAX,64

non ritorna nessun int:
XOR EAX,EAX

notare che XOR EAX,EAX è come dire MOV EAX,0

capito? praticamente non c'è nessuna differenza tra un programma che torna un valore ed uno che non lo torna,
alla fine l'eseguibile TORNA SEMPRE UN VALORE, solo che nel secondo caso, di default il valore tornato è 0

spero sia chiara la spiega
ciao
Smile




digger
22/07/2011, 14:58
#17
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 22/07/2011, 20:15 da Skyline@69.)

WarRock Hacks Coder
Messaggi: 940
Discussioni: 47
Registrato: 03-2011
Mix: 0
(22/07/2011, 14:58)digger Ha scritto:

[Per vedere i link devi REGISTRARTI.]

ahah sky, bella l'ultima similitudine circa la donna della motorizzazione Smile

volendo aggiungere qualcosina alla questione dell'int di ritorno, cosi tanto per arricchire le conoscenze di chi è interessato, questo è il programma con l'int di ritorno

int main()
{
return (100);
}


00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. B8 64000000 MOV EAX,64
00401008 |. 5D POP EBP
00401009 \. C3 RETN


questo è il programma senza int di ritorno:

main()
{
}

00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. 33C0 XOR EAX,EAX
00401005 |. 5D POP EBP
00401006 \. C3 RETN


ora, chiariamo come ragiona l'eseguibile, il valore di ritorno del programma eseguito viene messo nel registro EAX poco prima di uscire dal codice, quindi tralasciando le altre istruzioni che non ci interessano ora, la differenza tra i due programmi è questa:

ritorna int di valore 100 (64 esadecimale) :
MOV EAX,64

non ritorna nessun int:
XOR EAX,EAX

notare che XOR EAX,EAX è come dire MOV EAX,0

capito? praticamente non c'è nessuna differenza tra un programma che torna un valore ed uno che non lo torna,
alla fine l'eseguibile TORNA SEMPRE UN VALORE, solo che nel secondo caso, di default il valore tornato è 0

spero sia chiara la spiega
ciao
Smile

questa si che era carina... good Blush +1 Smile (anche se di +1 ne hai già molti, in confronto a me Asd )

22/07/2011, 20:14
#18
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
grazie sei troppo buono Smile


digger
22/07/2011, 23:09
#19
Cerca

WarRock Hacks Coder
Messaggi: 940
Discussioni: 47
Registrato: 03-2011
Mix: 0
(22/07/2011, 23:09)digger Ha scritto:

[Per vedere i link devi REGISTRARTI.]

grazie sei troppo buono Smile

Questo è vero Asd Asd

23/07/2011, 8:27
#20
Cerca


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  [Guida] Al C++ Parte 8. Luxor 12 2,635 28/07/2011, 14:42
Ultimo messaggio: digger
  [Guida] Al C++ Parte 7. Luxor 5 1,644 27/07/2011, 14:51
Ultimo messaggio: digger
  [Guida] Al C++ Parte 1. Luxor 7 2,436 25/07/2011, 23:38
Ultimo messaggio: digger



Utenti che stanno guardando questa discussione: 1 Ospite(i)