Características del lenguaje mql5, sutilezas y técnicas - página 120

 
Creo que querían filtrar la reconexión. No recuerdo cómo terminó.
 
Andrey Khatimlianskii:
Parece que querían filtrar la habilitación repetida. No recuerdo cómo terminó.

Parece que siempre se ha filtrado así. Al menos desde que tengo uso de razón. Pero #ifndef sigue siendo más seguro, porque si el mismo archivo se incluye a través de diferentes rutas (enlace simbólico/duro), ME no entiende que es el mismo archivo.

Por otro lado esto también es un arma de doble filo, si resulta que los archivos son realmente diferentes (diferentes versiones), entonces podría haber confusión, nadie sabe qué archivo está incluido, por lo que los desarrolladores necesitan arreglar esto, para filtrar no por la ruta simbólica del archivo, sino por la ruta real.

 
¿Quizás la pregunta se refiere a las bibliotecas y no a los inluders?
 
SemenTalonov:

es extraño que se pongan directivas y no se usen

Uso similar, pero es casi una locura prescribir esto para cada mqh.

Andrey Khatimlianskii:
Parecía que querían filtrar la reutilización. No recuerdo cómo terminó.

La reinserción se ignora.

TheXpert:
¿Quizás la pregunta se refiere a las bibliotecas y no a los inluders?

Nunca he trabajado con las bibliotecas de ex4/5, así que me refería a los inluders.

 
fxsaber:

La reactivación se ignora.

¿Cuál es el problema con

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Características del lenguaje mql5, sutilezas y trucos

fxsaber, 2019.01.14 17:30

¿Qué hacer cuando se conectan bibliotecas, cada una de las cuales conecta las mismas bibliotecas dentro de sí misma?


?

 
Andrey Khatimlianskii:

¿Cuál es el problema entonces?

No hay nada malo en ello ahora, pero se sugirió cancelar, si entiendo correctamente.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Peculiaridades del lenguaje mql5, consejos y trucos

Alexey Navoykov, 2019.01.14 15:26

En C++ el código es procesado por el compilador estrictamente de arriba a abajo, por lo que todo lo de arriba ya está inicializado. Y no se puede direccionar hacia abajo. Por eso está claro. Y ya que los desarrolladores han introducido algunas reglas propias aquí, que aseguren el orden correcto de ejecución del código.

 
fxsaber:

Ahora está bien, pero se sugirió que se cancelara, si entiendo bien.

¿Cuál es la conexión con los inludes?
 
fxsaber:

No hay nada malo en ello ahora, pero se sugirió que se cancelara, si entendí bien.

No, fue malinterpretado.

Se sugirió que el preprocesador procesara el código en orden. En este caso, los inludes se insertan en el código en el lugar de la primera mención de la misma manera.
 
Andrey Khatimlianskii:

No, lo has entendido mal.

El preprocesador fue sugerido para manejar el código en orden. Al mismo tiempo, las inlusiones se insertan en el código en el lugar de la primera mención.

La cuestión es que si las funciones que se pretenden utilizar están especificadas en el inlude, hay que escribirlas según la sugerencia, si el inlude está por debajo.

 
fxsaber:

La cuestión es que si has especificado funciones en el inlude que vas a utilizar, tienes que escribirlas según el orden sugerido, si el inlude está abajo.

//gcc 5.4.0

int main(void)
{
    g();
    return 0;
}

void g() {f();}

void f() {}

Dijiste lo del orden, pero te olvidaste del multipass.

y parece que hay un par de UBs con la orden

Razón de la queja: