Fehler, Irrtümer, Fragen - Seite 2117

 

Das war eindeutig.

 
fxsaber:

Das war eindeutig.

Welche Einwertigkeit liegt vor, wenn die Reihenfolge, in der die Operanden berechnet werden, unbestimmt ist?

 
A100:

Was ist Eindeutigkeit, wenn die Reihenfolge, in der die Operanden berechnet werden, unbestimmt ist?

Wenn sie undefiniert ist, verwende ich sie nicht. Aber wenn es definiert ist, dann tue ich es.

Die Tafeln fügen von links nach rechts hinzu. Das wird hier nichts ändern.
 
fxsaber:

Wenn sie undefiniert ist, verwende ich sie nicht. Wenn es sicher ist, benutze ich es.

Undefiniert in dem Sinne, dass es nicht dokumentiert ist und jederzeit geändert werden kann. Und wenn es dokumentiert wäre, wäre es kein Problem, die Dokumentation zu ändern.

 
A100:

Undefiniert in dem Sinne, dass es nicht dokumentiert ist und jederzeit geändert werden kann. Und wenn es dokumentiert wäre, würden sie die Dokumentation ändern.

fxsaber:

Die Dubs werden von links nach rechts gefaltet. Hier wird sich nichts ändern.

 
A100:

3. ich habe vorgeschlagen, dass der Compiler die Reihenfolge, in der die Argumente für Nicht-Inline-Funktionen berechnet werden, nicht ändern darf

5. Die Reihenfolge der Berechnung wird durch die Implementierung (Compiler) festgelegt und ist recht spezifisch (entweder von rechts nach links oder von links nach rechts), wie zum Beispiel hier:

es ist nicht klar, welche Reihenfolge 2-1-3 oder 2-3-1 oder was auch immer ist.

Ergebnis: 5041:0:5041.

Erwartet: 0:0:5041 von links nach rechts oder

5041:0:0 von rechts nach links

Sie ist spezifisch für eine bestimmte Situation. Sie können nicht erwarten, dass es immer so sein wird, denn die Norm garantiert das nicht.

Sie kann sich leicht ändern, wenn der Compiler plötzlich beschließt, Ihre Funktion inline zu machen, oder Sie die Aufrufkonvention ändern, oder aus anderen Gründen.

 
wie können wir die
ObjectsTotal(OBJ_BUTTON)

Wenn wir zum Beispiel bei einer Suche ein Objekt nach seinem Namen auswählen müssen

 k=ObjectsTotal(OBJ_BUTTON);
   for(i=0; i<k; i++)
     {

      if(StringFind(ObjectName(i),Name+"LINEORDER"))
}

aber in der Liste aller Objekte steht es nicht unter den Nummern 0,1,2,3, sondern unter den Nummern 0,10,38,45.....

?

 
 
Hallo. Was meinen Sie?