Errores, fallos, preguntas - página 1654

 
Alexey Viktorov:
Хочешь сказать при закрытых графиках не скрывается символ?
Alexey Viktorov
:

¿Quiere decir que el símbolo no se oculta cuando los gráficos están cerrados?

Sí. Ya me he encontrado con este tipo de cosas algunas veces.

 
Vitalii Ananev:

El mensaje de error sigue siendo correcto.

En un principio no le presté mucha atención, pero al volver a encontrarme con él, hay argumentos que indican que no es correcto. Y aquí está la razón: además es código condicional

int f()
{
        while ( true )
        {
//много строк c return, continue, без break
                return 0;
//много строк c return, continue, без break
                return 1;
//много строк c return, continue, без break
        }
        return Random(); //(*) написано по требованию MQL компилятора //строка 61
}

Lo que hay que poner después de while(true) {} se reduce a esto: "Nunca estaremos allí de todos modos... return se necesita sólo formalmente - para que el compilador diga OK... Así que - pongamos un valor aleatorio allí - devuelve Random();".

Después de un tiempo hacemos algunos cambios en el código y ahora necesitamos añadir un break dentro de while
En este caso el compilador dirá: "OK. Hay código después de while(true) {}, lo que significa que el caso 'break' ya estaba previsto antes y debe haber el mismo 'break' entre este conjunto de líneas. Todos los valores de retorno ya estaban pensados en su momento, ¡no te molestes!".
Y al final obtendremos un valor aleatorio.

Pero si no hubiera ninguna cadena (*) al principio, el compilador dirá: "Error: No... ...de ninguna manera... Antes no había pausa y hay que devolver algo deliberado".

Resulta que la cadena (*) no sólo es excesiva, sino que aumenta la probabilidad de errores difíciles de encontrar

 
A100:

Al principio no le presté mucha atención, pero al volver a encontrarme con él, se argumentó que no era correcto...

Además, en este ejemplo tuyo, lo normal es que te aparezca un aviso de "código inalcanzable". Studio tampoco da ese aviso, pero el compilador de Burdeos sí lo hacía, según recuerdo.
 
Sergei Vladimirov:
Además, en este ejemplo suyo, normalmente debería generar la advertencia de "código inalcanzable". Studio tampoco emite esa advertencia, pero el compilador Borland sí lo hacía, según recuerdo.

Buena memoria.

Y Borland no da avisos por nimiedades lo que demuestra una vez más mis argumentos

 
A100:

Y Borland no da avisos por nada...

No estoy de acuerdo contigo en eso. :) Me parece que es una nimiedad que no merece atención. Sólo tienes que conectar return(0) y seguir adelante.

Además, en la ACM es mejor utilizar siempre while(!IsStopped()) en lugar de while(true), en cuyo caso el retorno después del bucle ya es obligatorio.

 
¿Alguien más tiene problemas con la optimización de la nube (y no sólo) o es sólo mi "suerte" que haya dejado de funcionar con la nueva build de MT5?
 
En mi editor, la lista de métodos disponibles no baja después del punto. Esto es muy inconveniente para mí. ¿Cómo puedo solucionarlo? En la versión antigua, la lista sí se desplegaba.
 
vinnipyx:
En mi editor, la lista de métodos disponibles no baja después del punto. Es muy incómodo para mí. ¿Cómo puedo solucionarlo? En la versión antigua, sí que bajaba.
El mismo problema. Tengo que empezar a escribir de memoria, y después de un par de letras se cae, pero sólo a partir de estas letras.
Esto es terriblemente inconveniente.
 

¿Qué tal esto?

 
Vladimir Pastushak:

¿Qué tal esto?

¿tal vez sea un constructor de estructuras? de todas formas está ahí