Forum: Compiler & IDEs Adresse einer Funktion anzeigen


von Leo L. (gogalop27)


Lesenswert?

Hallo zusammen,

ich wollte mir anhand eines einfachen Programms beweisen, dass eine 
Funktion ebenfalls wie Datentypen irgendwo im Hauptspeicher liegen, 
daher wollte ich die Adresse einer Funktion ausspucken lassen.  Es hat 
aber irgendwie nicht geklappt, habt Ihr vielleicht ne Ahnung woran es 
liegt?



#include <iostream>
using namespace std;

double quadrat(double x){
return x*x;
}

int main() {
cout << quadrat << endl;
}



Vielen Dank für Eure Hilfe

Grüße aus Rheinland,

Leoni

von Das Kleinkind (Gast)


Lesenswert?

Du darfst zwar alles essen, aber nicht alles wissen.
Weiß es auch nicht.
Hat mich auch noch nie interresiert.

Gruß

von Uwe .. (uwegw)


Lesenswert?

Der Compiler scheint die Adresse irgendwie in nen bool umwandeln zu 
wollen (siehe Warnung!).
Mit nem Cast auf int geht es.

von Sven P. (Gast)


Lesenswert?

GNU-C:
1
#include <stdio.h>
2
3
void bummsfallera() {
4
  printf("Hallo Welt\n");
5
}
6
7
int main() {
8
  void *p = (void *) &bummsfallera;
9
  printf("bummsfallera = %p\n", p);
10
  return 0;
11
}

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

1
#include <stdio.h>
2
3
int main()
4
{
5
   printf ("main = 0x%08x\n", (unsigned int) main);
6
   return 0;
7
}

von Leo L. (gogalop27)


Lesenswert?

Vielen Dank für Eure Hilfe.

Gruss, Leoni

von Peter D. (peda)


Lesenswert?

Leo Lion wrote:
> Vielen Dank für Eure Hilfe.

Interessant, daß bei den schwierigen Sachen doch wieder plain C angesagt 
ist, statt C++.

Die C++ Entwickler haben sich wohl was dabei gedacht, daß C zu 100% in 
C++ enthalten ist.

Ich kann ehrlich gesagt, überhaupt nichts mit
1
cout << quadrat << endl;
anfangen, da fehlen einfach zuviel Sachen.


Peter

von Sven P. (Gast)


Lesenswert?

Das einzige, was der C++-Zeile da fehlt, ist ein Typencast :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.