Errores, fallos, preguntas - página 2209
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Y porque sus ejemplos son puramente teóricos. Son exclusivamente para estudiantes. Ningún programador en su sano juicio pondría esas cosas en producción.
Los incrementos y decrementos postfijados y prefijados se utilizan en primer lugar en los bucles. Y se llaman incrementos y decrementos.
He aquí algunos ejemplos
и
Si afirma que las operaciones de prefijo y postfijo funcionan igual, entonces bandera en mano y tambor en el cuello.
En el caso del incremento del prefijo, obtendrá un elemento de matriz nulo no inicializado y un error de matriz fuera de rango en la última iteración.
Tal vez tu mente elevada no lo entienda, voy a repetir mi pregunta una vez más.
¿Le resulta difícil ver el resaltado?
Ahora al grano, por qué en el ejemplo que aparece en la conversación, el resultado en mql == 12 y no importa si se hizo a mano o no, cuando hay una diferencia en las operaciones postfix y prefix, el resultado debería ser == 13
ps. y no estoy haciendo una declaración, porque ahora he comprobado y realmente hacer postfix y prefijo ahora tienen una diferencia, pero mi pregunta anterior da razones para creer que las ambigüedades en el lenguaje en tiempo de compilación aparentemente suficiente y antes de saltar sobre alguien en la rama, tratar con estos UB, no estamos en falta aquí
Por cierto, veo que la ayuda ya ha sido retocada )).
Tal vez tu mente elevada no lo entienda, voy a repetir mi pregunta de nuevo.
¿no entiendes la parte resaltada?
ahora al grano, por qué en el ejemplo que aparece en la conversación, el resultado en mql == 12 y no importa si se hace a mano o no, cuando la diferencia en las operaciones postfix y prefix, el resultado debería ser == 13
ps. y no estoy haciendo una declaración, porque ahora he comprobado y realmente hacer postfix y prefijo ahora tienen una diferencia, pero mi pregunta anterior da razones para creer que las ambigüedades en el lenguaje en tiempo de compilación aparentemente suficiente y antes de saltar sobre alguien en la rama, tratar con estos UB, no estamos en falta aquí
Por cierto, la ayuda parece que se ha llevado a cabo con una pala).
No seas sarcástico.
¿Quién dice que los resultados tienen que ser 13? De nuevo, los resultados con efectos secundarios dependen en gran medida de la optimización. Aunque no se aplique la optimización a una expresión de este tipo, entra en juego una implementación: un cambio en el valor de la variable, ya sea inmediatamente después de usarla o después de calcular la expresión. ¿Qué aplicación es la correcta?
No vamos a ocuparnos de la UB, que no está definida, y escribimos claramente: "No hagas eso".
¿Dónde se ha copiado la ayuda? He abierto la referencia MQL5 del MetaEditor build 1755 del 18 de enero. Dice lo mismo
Avisoimportante
int i=5;
int k = i++ + ++i;
Pueden surgir problemas de cálculo al trasladar la expresión anterior de un entorno de programación a otro (por ejemplo, de Borland C++ a MQL5). En general, el orden de los cálculos depende de la implementación del compilador. En la práctica, hay dos formas de aplicar la posdecreción:
En la actualidad, la primera forma de cálculo de post-decremento está implementada en MQL5. Pero aún conociendo esta peculiaridad, no se recomienda experimentar con su uso.
Tu afirmación original era que no hay diferencia entre las operaciones postfijas y las prefijas. ¿No es así?
No seas frívolo.
¿Quién dice que los resultados tienen que ser 13? De nuevo, los resultados con efectos secundarios dependen en gran medida de la optimización. Aunque no se aplique la optimización a una expresión de este tipo, entra en juego una implementación: un cambio en el valor de la variable justo después de usarla o después de calcular la expresión. ¿Qué aplicación es la correcta?
No vamos a tratar con UB, por eso es indefinido, y dijimos explícitamente "no lo hagas".
¿A dónde fuiste en la referencia? He abierto la referencia MQL5 del MetaEditor build 1755 del 18 de enero. Dice lo mismo
Avisoimportante
int i=5;
int k = i++ + ++i;
Pueden surgir problemas de cálculo al trasladar la expresión anterior de un entorno de programación a otro (por ejemplo, de Borland C++ a MQL5). En general, el orden de los cálculos depende de la implementación del compilador. En la práctica, hay dos formas de aplicar la posdecreción:
En la actualidad, la primera forma de cálculo de post-decremento está implementada en MQL5. Pero aún conociendo esta peculiaridad, no se recomienda experimentar con su uso.
Tu afirmación original era que no hay diferencia entre las operaciones postfijas y las prefijas. ¿No es así?
No estoy siendo descarado, fíjate por dónde has empezado el diálogo, es decir, he tenido que ejecutar un código que ni siquiera conocía - super
en cuanto a la ayuda - sí, es una revisión importante porque cuando me ocupaba (hace unos dos años) de las operaciones de postfix y prefijo en mql, obviamente no recuerdo este material ahora
así, el tema estaba cerrado, y hemos introducido esta diferencia y lo hemos hecho bien, pero hay que advertirles que estás cambiando
Por favor, asesore sobre el cierre parcial de la posición, tipo de cuenta RETAIL_HEDGING. Por ejemplo, cierro la mitad de una posición en Expert Advisor y una nueva orden con un lote menor debería abrirse automáticamente. Entonces, ¿en qué momento se garantiza que la nueva orden esté en la terminal? ¿Entiendo bien que no tiene que aparecer inmediatamente después del PositionClosePartial y que tenemos que cogerlo en algún lugar del OnTrade?
¿Qué demonios es esa cosa?
\sobre la ayuda - sí, ha sido fuertemente refrito, porque cuando yo estaba tratando (hace unos dos años) con las operaciones de postfix y prefijo en mql, obviamente no recuerdo este material ahora
en general, el tema estaba cerrado, y hemos introducido esta diferencia y lo hemos hecho bien, pero hay que advertirles de los cambios, ¿no?
Por interés decidí revisar la antigua build 1159 de junio de 2015. Su ayuda tiene todo lo que citó Slava. Así que tal vez tengas algo mezclado.
¿Qué demonios es esa cosa?
Es un choque:) ¡Vaya a servicedesk!
Es un choque:) ¡Vaya a servicedesk!
Lo tengo - rompió el banco :)
Ya veo - rompió el banco :)
Así es)
Así es)
¿No sé cómo localizar este error? No quiero revelar todo el guión, y no quiero volver a empaquetar todo....