PDA

Visualizza la versione completa : [C++] I "goto" sono puntatori?


XWolverineX
19-10-2006, 20:33
Salve...
Una volta volevo provare a usare un po i goto con le label
Feci la solita label



lbl1:
//codice


Ho notato che le label dal compilatore Visual C++ vengono presi come puntatori a void!!!
Pu darsi che mi sbagli?
Rifar una prova piu' tardi ma voi ne sapete qualcosa in piu'?

XWolverineX
19-10-2006, 20:36
Ho controllato e non sbagliavo: le label il compilatore li segnala come void*...
Cosa sapete dirmi??

Habanero
19-10-2006, 21:21
scusa ma cosa dovremmo dire?
mi sembra abbastanza intuitivo... un goto un salto ad una nuova locazione di codice... un puntatore una variabile che referenzia un indirizzo in memoria... goto label=goto indirizzo...

XWolverineX
19-10-2006, 21:37
Originariamente inviato da Habanero
scusa ma cosa dovremmo dire?
mi sembra abbastanza intuitivo... un goto un salto ad una nuova locazione di codice... un puntatore una variabile che referenzia un indirizzo in memoria... goto label=goto indirizzo...

Scusa se ho aperto il topic... :cry:

Habanero
20-10-2006, 09:44
scusami tu se ti sono sembrato scortese...
solo che dalla tua domanda sembrava che ci dovesse essere dietro qualcosa di molto misterioso...
spero non te la sia presa.

XWolverineX
20-10-2006, 09:55
No che io vedevo la label come un'etichetta, si, ma fosse una cosa abbastanza...testuale, non so se mi spiego.

Habanero
20-10-2006, 10:11
un goto un salto incondizionato... deve avere un riferimento per sapere dove saltare e questo riferimento non pu che essere un indirizzo.. la label testuale associata serve solo al programmatore come riferimento mnemonico.

oregon
20-10-2006, 10:23
Originariamente inviato da XWolverineX
No che io vedevo la label come un'etichetta, si, ma fosse una cosa abbastanza...testuale, non so se mi spiego.

Un'etichetta e' associata ad un indirizzo in memoria.

Quando il compilatore esegue una

goto etichetta

non fa altro che trovare l'indirizzo associato all'etichetta e fornirlo alla

JMP indirizzo

che spostera' il punto di esecuzione del codice.

Quindi, dire che i "goto" sono puntatori e' sbagliato oltre che fuorviante ... i goto sono semplici istruzioni che spostano l'esecuzione del programma ad un preciso indirizzo in memoria ...

Loading