Wenn eine Anweisung ausgeführt wird, kommt es zur Auswertung ihrer Ausdrücke. Erste Ausführung erfolgt und dann Auswertung.
Im Snippet
%Vor% Wenn die Anweisung j = 10 + 5*i;
ausgeführt wird, findet die Auswertung der Ausdrücke j
, 10
, 5*i
, 10 + 5*i
und j = 10 + 5*i
statt. Beachten Sie, dass die ersten drei in beliebiger Reihenfolge ausgewertet werden können.
Es ist nur eine Frage der Linguistik. Ausdrücke werden ausgewertet, Anweisungen werden ausgeführt. In beiden Fällen können wir sagen, dass "etwas getan wird", und ich würde mich nicht zu sehr um den Unterschied kümmern.
Um zu verdeutlichen: grob, eine Anweisung ist eine Codezeile, und ein Ausdruck ist das, was Sie in Klammern in if()
oder while()
finden können, oder auf der rechten Seite eines Gleichheitszeichens.
Zum Beispiel ist int x = 2 + 3;
eine Anweisung, die eine Variable x
deklariert und ihr das Ergebnis des Ausdrucks 2 + 3
zuweist, also 5
.
Es ist wirklich nahe genug, um in fast allen Fällen keine Rolle zu spielen.
Wenn wir sehr genau sein wollen, würde ich sagen, dass die Auswertung einen Ergebniswert erzeugt und den Zustand nicht ändert, während die Ausführung den Status ändert und der Ergebniswert entweder nicht erzeugt wird oder zufällig ist und ignoriert wird.
Im Allgemeinen bewerten wir Ausdrücke, wir führen Anweisungen aus.
Wenn wir zum Beispiel eine if
-Anweisung in C haben, werten wir zuerst die Bedingung aus, dann führen wir (oder nicht) den Körper aus.
Die Verwirrung wird verstärkt, weil wir in C Ausdrücke haben, die den Status ändern (Zuweisungsoperator, Inkrementierungs- / Dekrementoperatoren) und die Anweisungen, die nichts als Ausdrücke sind.
Also, wenn Sie
sehen %Vor% in C ist es eine Anweisung, die ausgeführt wird, aber die Ausführung besteht darin, den Ausdruck a=b+c
auszuwerten, wobei das Ergebnis verworfen wird und der Nebeneffekt ( a
ändert seinen Wert) ist wichtig.
Die Art und Weise, wie ich darüber nachgedacht habe, ist: Der Ausdruck "Ausdruck" wird von der mathematischen Terminologie übernommen. Die Bewertung ist definiert als :
bewerten
Auswerten bedeutet, den Wert eines numerischen oder algebraischen Ausdrucks zu finden.
Ausdrücke haben die folgende Definition : (Fettdruck zur Hervorhebung hinzugefügt)
Ein Ausdruck in einer Programmiersprache ist eine Kombination aus einem oder mehreren expliziten Werten, Konstanten, Variablen, Operatoren und Funktionen, die von der Programmiersprache interpretiert werden (entsprechend ihrer besonderen Vorrangregeln und Assoziationsregeln) ) und berechnet, um einen anderen Wert zu erzeugen ("zurückzugeben", in einer zustandsbehafteten Umgebung).
Bei der Programmierung besteht praktisch jede Aussage (oder jede Aussage, die es wert ist geschrieben zu werden) aus vielen Ausdrücken. Ich habe immer evaluation verwendet, um auf die Berechnung dieser Ausdrücke Bezug zu nehmen, und execution um auf die Berechnung der gesamten Aussage zu verweisen. Dies fällt oft mit Unterschieden zwischen Rückgabewert und Nebenwirkungen zusammen. Vollständige Anweisungen haben normalerweise Nebenwirkungen und Ausdrücke geben normalerweise einen Wert zurück.
Tags und Links c evaluation execution