Errores, fallos, preguntas - página 2537

 

Si la función ::Print() envía una cadena larga (más de 260 caracteres) a la ventana de Toolbox/Experts, se truncará a 256 caracteres copiando la cadena con la función PCM/Copy.


Si, por el contrario, lo copias con PCM/Review/Copy, no se trunca.

¿Cuál es la diferencia?

 
A100:

Ya lo veo.

#define  MACRO( ТОЛЬКО_НЕ_void )    Print( "OK" )
void OnStart() { MACRO(); }

Hmm, es complicado...... ¡Saluda a los EEJAMS!

#define    test(int) for(int i=0;i<10;i++) Print("OK");
//+------------------------------------------------------------------+
void OnStart()
  {
  test();
  }

'i' - identificador no declarado tst.mq5 16 3

La opción del vacío funcionará sin problemas, pero recuerda quitar el papel de aluminio.
 
A100:

Ya lo veo.

#define  MACRO Print( "OK" )
void OnStart() { MACRO; }

¿Los paréntesis después de la macro te hacen sentir mejor?

Y sí, el uso de palabras reservadas en la declaración de parámetros de macros es el amor a las precondiciones de enormes bugs. Bueno, cada uno decide por sí mismo cómo disparar sus piernas, lo bueno, los desarrolladores no nos aseguran realmente de esta acción emocionante, y deben ser felicitados))))

Por último, averigua qué es el parámetro macro y cómo se utiliza.

 
Igor Makanu:

hmm, es complicado para ti...... ¡Saluda a los Erizos!

'i' - identificador no declarado tst.mq5 16 3

La variante de vacío funcionará sin problemas, pero deberías saberlo.
void OnStart()
  {
  for(i=0;i<10;i++) Print("OK");;
  }

Esto es lo que el preprocesador le muestra.

PS dos ; - esto no es mi error tipográfico, será realmente después de que el preprocesador.
 
Igor Makanu:

La versión vacía funcionará sin problemas, pero ya sabes, no te olvides de quitar el papel de aluminio.

En este caso particular funcionará, pero no en el caso general. Nadie necesita las peores soluciones para los casos privados. Por vacío se entiende cualquier palabra clave, en caso de que todavía no haya entendido

 
Vladimir Simakov:

¿Los paréntesis después de una macro te hacen sentir mejor?

Pero sí, el uso de palabras reservadas en la declaración de los parámetros de la macro es el amor a las condiciones previas de hacer grandes errores. Bueno, cada uno decide por sí mismo cómo disparar sus piernas, lo bueno, los desarrolladores no son del todo asegurado de esta acción emocionante, por lo que respetan))))

Por último, averigua qué es el parámetro macro y cómo se utiliza.

Tengo un argumento de peso para ti: "Todo funciona correctamente en C++". ¿Tiene algo que responder a ello? ¿No? - Entonces guárdate tus enseñanzas morales. Y más vale que lo descubras, si no entiendes por qué hay paréntesis.

P.D. FueIgor Makanuquien losugirió- escríbale al respecto
 
A100:

En este caso particular funcionará, pero no en el caso general. Las peores soluciones para casos especiales: nadie las necesita. nulo significaba cualquier palabra clave, si todavía no entiendes

Muy bien, adelante, no es agradable hablar contigo. Siempre me atraen las personalidades, en este foro me interesan más los temas técnicos

Vladimir Simakov:

Eso es lo que el preprocesador le ha dado como resultado.

PS dos ; - no es mi error de impresión, realmente será después de que el preprocesador.

Sé de qué se trata;

la cuestión era puramente técnica: cómo hacerlo bien

Utilicé cualquier tipo, esperaba alguna mierda - funcionó bien, lo utilizo raramente (casi siempre escribo el envío de la orden como BUY(doble lote) o simple macro BUY()) - Siempre he usado void aquí - no hubo problemas y no debería haberlos

 
A100:

Tengo un argumento de peso para ti: "Todo funciona correctamente en C++". ¿Tiene algo que lo contradiga?

Y luego están C#, JS y todo lo demás. Sólo aquí está mql, y tiene esto.
 
Igor Makanu:

Muy bien, mantente ocupado, no es agradable hablar contigo. Siempre tienes tendencia a saltar a las personalidades, a mí me interesa más este foro en temas técnicos.

¿No es agradable? ¿Temas técnicos de interés? A juzgar por tu mensaje entiendo que te interesa más el tema del sadomasoquismo. Me comunico contigo - en tu idioma - utilizando tu vocabulario

 
Vladimir Simakov:
Y luego están C#, JS y todos los demás. Sólo que aquí es mql, y va así.

¿Qué tiene que ver C#, JS y todo lo demás? Leer la documentación de MQL - página 1:

"La sintaxis de MQL5 es similar a la de C++".

https://www.mql5.com/ru/docs/basis.

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...