Printf l'adresse actuelle dans un programme C

Imaginer que j'ai suivantes simple programme C:

int main() {

int a=5, b= 6, c;
c = a +b; 
return 0;
}

Maintenant, je voudrais savoir l'adresse de l'expression c=a+b, qui est l'adresse du programme
où cet ajout est effectué. Est-il possible que je puisse utiliser printf?
Quelque chose le long de la ligne:

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;
}

Je sais comment j'ai pu trouver l'adresse par l'utilisation de gdb et ensuite la ligne info de fichier.c:ligne. Cependant, je voudrais savoir si je pouvais aussi le faire directement avec le printf.

Il serait utile de savoir qui de l'architecture du processeur et le compilateur que vous utilisez. Le consensus semble être que il n'y a pas vraiment portable façon de le faire.
n'est-il pas possible que l '"instruction" vous êtes à la recherche à la réalité se traduit par une série d'instructions de montage, couvrant une plage d'adresses?

OriginalL'auteur | 2009-05-14