Wie funktioniert die bestimmte C-Funktion arbeiten?

Ich versuche, C zu lernen und bin sehr verwirrt bereits.

In der OOP-Sprachen, die ich haben verwendet es gibt die Fähigkeit zum ausführen einer Methode überladen, wo die gleiche Funktion könnten unterschiedliche parameter-Typen und call-welcher war am besten geeignet.

Nun in C weiß ich, dass dies nicht der Fall, so dass ich kann nicht herausfinden, Folgendes problem, Wie printf() funktioniert.

Beispiel:

char chVar = 'A';
int intVar = 123;
float flVar = 99.999;

printf("%c - %i - %f \n",chVar, intVar, flVar);
printf("%i - %f - %c \n",intVar, flVar, chVar);
printf("%f - %c - %i \n",flVar, chVar, intVar);

Nun als C does ' NT support-Funktion überladen, Wie funktioniert printf verwalten beliebige Anzahl Argumente beliebigen Typs, und arbeiten Sie sich dann richtig mit Ihnen?

Habe ich versucht zu finden, die printf () - arbeiten durch das herunterladen der glibc-source-Paket kann aber ganz scheinen, um es zu finden, aber ich werde weiter suchen.

Könnte jemand hier erklären, wie C führt die oben angegebene Aufgabe?

  • Wenn Sie mehr wissen wollen, Lesen Sie auf den Aufruf-Konventionen und der stack
  • Deine Frage über C, aber Sie sagen, "ich bin versucht zu lernen, C++." Wenn Sie versuchen zu lernen, C++, ist es am besten zu beginnen durch die Vermeidung von C-teilen, die die Sprache (und bleiben auf den höheren Ebenen der Abstraktion, die C++ bietet), dann, sobald Sie sind komfortabel mit, dass, zu Graben, in anderen teilen der Sprache.
  • Wenn Sie nicht wollen, zu kümmern, dann pass -Wformat als argument zu g++. Andere Compiler sollten, ich denke/hoffe/erwarte, haben ähnliche Warnungen. Dies bewirkt, dass der compiler überprüfen, dass die Typen übereinstimmen.
  • Mögliche Duplikate von C/C++ - Funktion-Definitionen ohne Montage
InformationsquelleAutor Pike Man | 2012-01-16
Schreibe einen Kommentar