C ++ Standardargumentwert

8

Wo speichert der Compiler Standardargumentwerte in C ++? globaler Heap, Stack oder Datensegment?

Danke Jack

    
user382499 03.07.2010, 02:41
quelle

1 Antwort

31

Sie sind nicht unbedingt irgendwo gespeichert. Im einfachsten Fall kompiliert der Compiler einen Funktionsaufruf genau so, als wären die fehlenden Argumente vorhanden.

Zum Beispiel

%Vor%

Die beiden Aufrufe von f() werden wahrscheinlich zu genau demselben Assemblercode kompiliert. Sie können dies überprüfen, indem Sie Ihren Compiler auffordern, eine Assembly-Liste für den Objektcode zu erstellen.

Mein Compiler generiert:

%Vor%

Wie Sie sehen, ist der generierte Code identisch.

    
Greg Hewgill 03.07.2010 02:43
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ qstntxt ___ ___ answer16060427 ___

Vielleicht einen Filter verwenden:

Durchschnitt = 0,9 * Durchschnitt + 0,1 * Wert wo "Wert" die letzte Messung ist

Variiere mit 0,9 und 0,1 (solange die Summe dieser beiden 1 ist)

Dies ist nicht genau ein Durchschnitt, aber es filtert Spikes, Transienten usw. heraus, benötigt aber keine Arrays für die Speicherung.

Grüße, Karel

    
___ answer3097410 ___

Sie sollten sich die in Windows integrierte Leistungsüberwachung ansehen: D.

MSDN

Die API wird sich ein bisschen wackelig anfühlen, wenn Sie noch nicht damit gespielt haben, aber sie ist schnell, leistungsfähig, erweiterbar und macht es schnell möglich, brauchbare Ergebnisse zu erzielen.

    
___ answer3096935 ___

Die einfachste Option hierfür ist wahrscheinlich die Verwendung einer %code% , die dies bietet das First-In-First-Out-Verhalten, nach dem Sie suchen. Just Enqueue () Ihre Elemente, und wenn Sie mehr als X Elemente haben, Entfernen Sie die zusätzlichen Elemente ().

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die zum Erstellen einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer44326553 ___

meine Implementierung:

%Vor%

Verwendung:

%Vor%     
___ tag123performance ___ Für Fragen zur Messung oder Verbesserung der Code- und Anwendungseffizienz. ___ tag123arrays ___ Ein Array ist eine geordnete Datenstruktur, die aus einer Sammlung von Elementen (Werten oder Variablen) besteht, die jeweils durch einen oder mehrere Indizes identifiziert werden. Wenn Sie nach bestimmten Varianten von Arrays fragen, verwenden Sie stattdessen diese verwandten Tags: [Vektor], [Arraylist], [Matrix]. Wenn Sie dieses Tag verwenden, markieren Sie die Frage auch mit der verwendeten Programmiersprache, es sei denn, Ihre Frage bezieht sich nicht auf eine bestimmte Programmiersprache. ___ tag123diagnostics ___ hilf uns dieses Wiki zu bearbeiten ___ answer3097014 ___

Eine einfache aber schnelle Implementierung:

%Vor%     
___