Esto también es posible en mql. No cada vez que se llama a una función, se llama dos veces más - hay un retorno al principio de la función.
Se llama recursión.
https://ru.wikipedia.org/wiki/Рекурсия
https://habr.com/ru/post/275813/
Esto también es posible en mql. No cada vez que se llama a una función, se llama dos veces más - hay un retorno al principio de la función.
Se llama recursión.
https://ru.wikipedia.org/wiki/Рекурсия
https://habr.com/ru/post/275813/
Estoy reescribiendo una de las bibliotecas en mql, siguiendo tus consejos ))
Además, aconseja un buen libro que sea informativo y no demasiado largo.
Yo leí Straustrup en la uni, pero no creo que necesites un libro de texto sobre construcciones básicas del lenguaje, ya tienes experiencia en programación, no necesitas leer desde cero.
Nunca he escrito en C#, pero solía escribir programas para Windows. Cuando decidí probar mi mano en C# la ayuda en línea fue muy útil, cualquier pequeña pregunta aclarada, leí artículos cortos en este recurso, la recursividad C++ se describe brevemente aquí
https://metanit.com/cpp/tutorial/3.6.php
Tutorial general de C++https://metanit.com/cpp/tutorial/, dudo que encuentres información más concisa que en este sitio ;)
- metanit.com
Yo leí Straustrup en la uni, pero no creo que necesites un libro de texto sobre construcciones básicas del lenguaje, ya tienes experiencia en programación, no necesitas leer desde cero
Nunca he escrito en C#, pero solía escribir programas para Windows. Cuando decidí probar mi mano en C# la ayuda en línea fue muy útil, cualquier pequeña pregunta aclarada, leí artículos cortos en este recurso, la recursividad C++ se describe brevemente aquí
https://metanit.com/cpp/tutorial/3.6.php
Dudo que encuentres información más concisa que en este sitio ;)
Sólo hay que entender el lenguaje. La principal dificultad es que todo el código está escrito mediante punteros y goto, y hay muchas cosas innecesarias con la asignación de memoria y su posterior borrado.
Por tanto, se puede afirmar que mql y Ci son lenguajes absolutamente diferentes. Incluso construcciones tan simples como pasar punteros en lugar de arrays a una función no funcionan aquí, es muy difícil de reescribir.
Es fácil entrar en el lenguaje, la principal dificultad es que todo el código se escribe a través de punteros y goto, también hay mucho innecesario con la asignación de memoria y luego la destrucción
Por eso es obvio que mql y CY son lenguajes absolutamente diferentes. Incluso construcciones tan simples como pasar punteros en lugar de arrays a una función no funcionan aquí, es muy difícil de reescribir.
El procesador no conoce los nombres de los identificadores (nombres de las variables), sólo conoce los desplazamientos relativos de los datos (enlaces a las direcciones de memoria) y los datos referenciados necesitan ser tipificados - eso es lo que hace un puntero - describe el tipo de datos y dónde se almacenan los datos en la memoria
MQL es realmente un lenguaje diferente
- metanit.com
Eso es lo interesante de C++ - trabaja con punteros, toda la flexibilidad del lenguaje se basa en el trabajo con punteros - es decir, una imitación completa del trabajo con la memoria del procesador, el procesador no conoce los nombres de los identificadores (nombres de las variables), sólo conoce los desplazamientos relativos de los datos (de hecho las referencias a las direcciones de memoria) y los datos por referencia deben ser tipados - eso es lo que hace un puntero - describe el tipo de datos y la ubicación donde se almacenan los datos en la memoria
MQL es realmente un lenguaje diferente
Sí, gracias, ya estoy familiarizado con los punteros, y el libro tiene
Por cierto, la página es muy útil, la he añadido a mis favoritos.
aquí hay un buen curso de video conferencia para los perezosos, de c a cp
Este es un ejemplo de la cabecera de la biblioteca:
se crean estructuras con punteros a algo poco claro (aparentemente, son arrays que aún no existen), entonces entiendo que se declara una ...er...variable de esta estructuramine_score; con el mismo nombre?
typedef struct mine_score { int n; /* number of rows of M */ int *m; /* number of cols of M[i] for each i */ double **M; /* the (equi)characteristic matrix */ } mine_score;
tendremos que lidiar con eso también
y luego se declara una f-i que escribirá su resultado directamente en el espacio de memoria de esta variable?
mine_score *mine_compute_score(mine_problem *prob, mine_parameter *param);
Este es un ejemplo de la cabecera de la biblioteca:
se crean estructuras con punteros a algo poco claro (aparentemente, son arrays que aún no existen), entonces entiendo que se declara una ...er...variable de esta estructuramine_score; con el mismo nombre?
tendremos que lidiar con eso también
y luego declaramos una f-que escribirá su resultado directamente en la ubicación de memoria de esta variable?
No, el tipo de datos declarado aquí es mine_score, que es una estructura mine_score.
Y la función devuelve un puntero a esta estructura, que se creará dentro de esta función. En consecuencia, el propósito de la función es crear una entidad de tipo min_score y transferir su propiedad al ámbito de la llamada a la función.
Maxim Dmitrievsky:
esto también tendrá que ser tratado
y luego se declara una f-i que escribirá su resultado directamente en el espacio de memoria de esta variable?
Me olvidé de typedefs hace mucho tiempo, gracias MQL ayudar a recordar estas construcciones engorrosas)), al parecer es sólo una declaración demine_score tipo, que es una estructura y la descripción de la estructura fue "pegado" en la definición del tipo ( typedef ) , pero podría estar equivocado, aquí es una pregunta similar discutido y explicación bastante detallada:
http://qaru.site/questions/13054/typedef-struct-vs-struct-definitions
y luego declaras una f-i que escribirá su resultado directamente en el espacio de memoria de esta variable?
En C++, el programador se encarga de la asignación de memoria, por lo que si el resultado de una función devuelve un punteromine_score*, el que recibe este puntero debe asignar memoria, es decir, no es una variable sino un puntero a los datos
- 2009.11.04
- user69514
- qaru.site
Me olvidé de los typedefs hace mucho tiempo, por suerte MQL me ayuda a recordar esas construcciones engorrosas)), parece ser sólo una declaración del tipomine_score, que es una estructura y la descripción de la estructura fue "pegada" en la definición del tipo ( typedef ) , pero podría estar equivocado, aquí hay una pregunta similar discutida y una explicación bastante detallada:
http://qaru.site/questions/13054/typedef-struct-vs-struct-definitions
En C++, la asignación de memoria es responsabilidad del programador, por lo que si el resultado de una función devuelve un punteromine_score *, quienrecibe ese puntero debe asignar la memoria, es decir, no es una variable sino un puntero a los datos
#include "pch.h" #include <iostream> using namespace std; int* Foo(int i) { int* x = new int(i); return x; } int main() { int* x = Foo(5); cout << *x; delete x; return 0; }
Asigné memoria dentro de la función y la liberé en el ámbito de la variable a la que pasé la referencia.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
¿cómo funciona esta sintaxis? ¿la f-e está dentro de sí misma? 2 veces también
Además, ¿puede recomendar un buen libro que sea informativo y no demasiado largo?
Yo tengo uno.
Б. Kernighan, D. Ritchie
El lenguaje de programación C.
Edición 3 revisada