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
Todo está claro sobre la entrada. Lo de extern - ahí, según me parece, primero puedes declarar variables con el mismo tipo e identificador en diferentes archivos para adjuntarlas al proyecto, y luego resulta que no puedes declararlas así. Por supuesto, esto es un impresionismo de tres pisos...
El significado de extern es que si el archivo principal (main) tiene alguna variable y otro archivo se adjunta a este archivo. Y en este archivo adjunto necesitamos usar la variable declarada en el archivo principal, entonces en el archivo adjunto la declaramos como extern. Como resultado, el archivo vinculado puede ser compilado y cuando el archivo principal es compilado,la declaración de variables en el archivo vinculado es ignorada.
No lo sé. Para mí, toda la documentación se explica por sí misma. Si hay dificultades en alguna parte, desaparecen después de algunos experimentos.
Pero si no estoy familiarizado con las operaciones a nivel de bits, puedo leer cualquier artículo que quieras... No entenderé ni una palabra. Al igual que no podía entender nada de las banderas y los conjuntos de banderas hasta que Artem me lo explicó de viva voz.
Es comprensible si se le exigen valores, pero cómo funciona todo antes y después - la más oscura oscuridad
es comprensible si se le exige valor, pero cómo funciona todo antes y después es turbio, la más oscura turbiedad
¿Quién es ella?
¿Quién es ella?
la esencia del trabajo
lo hay:
1) extern sólo funciona en mql4.
2) los comentarios después de la entrada se mostrarán en los parámetros de entrada en lugar del nombre de la variable de entrada
input int ma_period = 20;
- dirá "ma_period".
input int ma_period = 20; // Periodo MA
- se escribirá "período MA".
para que sea exactamente como en mql4, se necesita el modo de compilación estricto #property strict.
Este truco no existe con extern.
3) Las variables externas pueden ser modificadas en el código como cualquier variable global, las de entrada no.
Inicialmente, sólo había mql4 y extern, no había entrada, ni tampoco OOP en mql4.
Luego se desarrolló mql5 que inmediatamente incluyó la entrada porque mql5 en general estaba orientado a la POO.
Hace unos 2-3 años, mql4 se actualizó con muchas características de mql5, incluyendo la entrada.
¿Sobre qué terminal está escribiendo?
En MT5, si se declara una variable externa como extern en el indicador, es posible que no se pueda llamar al indicador a través de iCustom().
¿Sobre qué terminal está escribiendo?
En MT5, si se declara una variable externa como extern en un indicador, es posible que el indicador no pueda ser llamado a través de iCustom().
No estoy reprochando ahora, pero usted escribe "puede fallar"... ¡resulta que puede o no funcionar! Quiero decir, es difícil para mí, como persona autodidacta sin educación especial, entender tal incertidumbre...
lo hay:
1) extern sólo funciona en mql4.
2) los comentarios después de la entrada aparecerán en los parámetros de entrada en lugar del nombre de la variable de entrada
input int ma_period = 20;
- dirá "ma_period".
input int ma_period = 20; // Periodo MA
- se escribirá "período MA".
para que sea exactamente como en mql4, se necesita el modo de compilación estricto #property strict.
Este truco no existe con extern.
3) Las variables externas pueden ser modificadas en el código como cualquier variable global, las de entrada no.
Inicialmente, sólo había mql4 y extern, no había entrada, ni tampoco OOP en mql4.
Entonces se creó mql5 y se incluyó inmediatamente la entrada porque mql5 en general estaba orientado exactamente a la OOP.
Hace unos 2-3 años, mql4 se actualizó con muchas características de mql5, incluyendo la entrada.
extern funciona en ambos casos. También lo hace la entrada en MQL5 y MQL4. Su propósito es diferente, y está escrito en la ayuda.
¿Por qué dirigir a una persona directamente a una idea errónea sobre el propósito de las variables de entrada y externas?
El significado de extern es que si el archivo principal (main) tiene alguna variable y otro archivo se adjunta a este archivo. Y en este archivo adjunto necesitamos usar la variable declarada en el archivo principal, entonces en el archivo adjunto la declaramos como extern. Como resultado, el archivo vinculado puede ser compilado, pero cuando se compila el archivo principal, la declaración de variables en el archivo vinculado es ignorada.
También pensé que este modificador funciona como en C++, es decir, se declara en el archivo de inclusiónhttps://www.mql5.com/ru/forum/160683/page867#comment_11927748
Comprobado no funciona como debería en C++
Archivo de la biblioteca tstextern
archivo de script:
cualquier manipulación de la variablekoef no hacenada, sigue estando en el ámbito local (dentro de cada archivo)
Su propósito es diferente y está escrito en la ayuda.
La diferencia está en el control de acceso:
entrada - sólo se puede leer, la escritura está prohibida.
externo - puede ser leído y escrito, y después de la reinicialización del programa MQL este valor será restaurado al valor especificado en los ajustes externos
No estoy siendo negativo ahora, pero escribes "podría no funcionar"... puede que no funcione, pero puede que sí. Quiero decir, es difícil para mí, como persona autodidacta sin educación especial, entender tal incertidumbre...
Quiero decir, no lo he comprobado ahora mismo. Y es peligroso decir lo que había antes, porque las cosas cambian muy a menudo. Quizás fue un fallo temporal.
También pensé que este modificador funciona como en C++, es decir, se declara en el archivo del pluginhttps://www.mql5.com/ru/forum/160683/page867#comment_11927748
no funciona como debería en C++
Archivo de la biblioteca tstextern
archivo de script:
cualquier manipulación de la variablekoef no hace nada, sigue estando en el ámbito local (dentro de cada archivo)
Bueno, tienes una biblioteca. Por supuesto, habrá diferentes variables. Lo que se quiere decir es la conexión de mqh a través de include.