Immaginate Ho il seguente programma C semplice:Printf l'indirizzo corrente nel programma C
int main() {
int a=5, b= 6, c;
c = a +b;
return 0;
}
Ora, vorrei conoscere l'indirizzo dell'espressione c = a + b, che è l'indirizzo del programma dove viene eseguita questa aggiunta. C'è qualche possibilità che io possa usare printf? Qualcosa lungo la linea:
int main() {
int a=5, b= 6, c;
printf("Address of printf instruction in memory: %x", current_address_pointer_or_something)
c = a +b;
return 0;
}
so come sono riuscito a trovare l'indirizzo con l'ausilio di gdb e poi informazioni linea file.c: riga. Tuttavia, dovrei sapere se potrei farlo anche direttamente con il printf.
Sarebbe utile sapere quale architettura del processore e compilatore si sta utilizzando. Il consenso sembra essere che non esiste un modo veramente portatile per farlo. – RichieHindle
non è possibile che l''istruzione' che stai guardando si traduca in realtà in una serie di istruzioni di assemblaggio, che coprono un intervallo di indirizzi? – user44511