Frage

Ja, ich weiß, dass "cdecl" der Name einer prominenten Aufrufkonvention ist, also erklären Sie mir bitte keine Aufrufkonventionen.Was ich frage ist, was die Abkürzung (?) "cdecl" steht eigentlich für.Ich denke, es ist eine schlechte Namenswahl, weil es auf den ersten Blick an "C-Deklarator" erinnert (ein ziemlich einzigartiger syntaktischer Aspekt von C).Tatsächlich gibt es ein Programm namens cdecl deren einziger Zweck es ist, C-Deklaratoren zu entschlüsseln.Aber die C-Deklaratorsyntax hat absolut nichts mit Aufrufkonventionen zu tun, soweit ich das beurteilen kann.

Vereinfachte Version:"stdcall" steht für "Standard calling convention".Wofür steht "cdecl"?

War es hilfreich?

Lösung

Sie lesen zu viel dazu.Es steht für das aufrufende Übereinkommen der Implementierung zum Aufrufen von C-Funktionen im Allgemeinen (aber besonders wichtig mit Varargs).

Es muss keine Abkürzung für etwas sein, das "C" und "Deklaration" kombiniert;Namen sind nur Namen, insbesondere in der Programmierung.Mnemonics-Hilfe, aber obwohl "Malloc" "Malloc" bedeutet, hat es eine zusätzliche Bedeutung, die wir kennen und daran befestigen;"Alloca" zum Beispiel "Alloca" auch "Speicher".

oder nehmen Sie "struct", welche "Struktur" bedeutet, dass "Struktur", aber "Struktur" ist allgemein von sich selbst, dass wir ohne die Bedeutung unbewusst an "struct" anhängen, wir würden hoffnungslos verloren - als neue Programmierer noch die Terminologie lernensind oft verloren.

Andere Tipps

Es stammt aus der C-Funktion, die deklariert wurde (im Gegensatz zu einer C-Funktion, die nicht deklariert wurde, die in K & R c üblich war).

Zum Zeitpunkt der Zeit war es mit Pascal Calling Convention zusammen (wo die Calle den Stapel löste), so dass es irgendwie senkt, es nach der Programmiersprache anzurufen.

alles, was Sie möglicherweise über die Anruf von Konventionen wissen möchten.

c-Erklärung.Eine von / für c. eingeführte Erklärung

[edit]

Ich muss ehrlich zugeben, dass ich nicht eigentlich weiß, ob das ist, ob das ist, wofür er ist, obwohl es tatsächlich von / für C eingeführt wird).Es könnte auch ein Mnemonik für "Anrufer" sein, der die Endreinigung macht ", die ich denke, ist eigentlich eine gute Gedächtnishilfe.: D

Aktualisiert Ich habe das komplett überarbeitet, nachdem die Kommentare darauf hingewiesen haben, wie falsch ich lag. cdecl bedeutet, dass diese Funktion dieselbe Aufrufkonvention verwendet, die C funktionen verwenden. extern "C" bedeutet außerdem, dass der Funktionsname nicht durchlaufen werden sollte C++ namensmangelei.

Warum es heißt cdecl, Ich weiß nicht mehr.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top