Caractéristiques du langage mql5, subtilités et techniques - page 120

 
Je pense qu'ils voulaient filtrer la reconnexion. Je ne me souviens pas comment ça s'est terminé.
 
Andrey Khatimlianskii:
Il semble qu'ils aient voulu filtrer les autorisations répétées. Je ne me souviens pas comment ça s'est terminé.

Il semble qu'il ait toujours été filtré de cette façon. Du moins, d'aussi loin que je me souvienne. Mais #ifndef est toujours plus sûr, car si le même fichier est inclus via différents chemins (lien symbolique/dur), ME ne comprend pas qu'il s'agit du même fichier.

D'un autre côté, c'est aussi une arme à double tranchant. S'il s'avère que les fichiers sont vraiment différents (différentes versions), il pourrait y avoir confusion, personne ne sait quel fichier est inclus, donc les développeurs doivent corriger cela, pour filtrer non pas par le chemin symbolique du fichier, mais par le chemin réel.

 
Peut-être la question porte-t-elle sur les bibliothèques et non sur les inluders ?
 
SemenTalonov:

il est étrange que des directives soient mises en place et non utilisées

Utilisation similaire, mais il est presque insensé de prescrire ceci pour chaque mqh.

Andrey Khatimlianskii:
Il semble qu'ils voulaient filtrer la réactivation. Je ne me souviens pas comment ça s'est terminé.

La réinsertion est ignorée.

LeXpert:
Peut-être que la question porte sur les bibliothèques et non sur les inluders ?

Je n'ai jamais travaillé avec les bibliothèques ex4/5, je faisais donc référence aux inluders.

 
fxsaber:

La réactivation est ignorée.

Quel est le problème avec

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Caractéristiques du langage mql5, subtilités et astuces

fxsaber, 2019.01.14 17:30

Que faire lorsque l'on connecte des bibliothèques, chacune d'entre elles connectant les mêmes bibliothèques à l'intérieur d'elle-même ?


?

 
Andrey Khatimlianskii:

Quel est le problème avec ça alors ?

Il n'y a rien de mal à cela maintenant, mais il a été suggéré d'annuler si j'ai bien compris.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Particularités du langage mql5, trucs et astuces

Alexey Navoykov, 2019.01.14 15:26

En C++ le code est traité par le compilateur strictement de haut en bas, donc tout ce qui est en haut est déjà initialisé. Et vous ne pouvez pas adresser en bas. C'est pourquoi il est clair. Et puisque les développeurs ont introduit quelques règles de leur cru ici, qu'ils veillent à l'ordre correct d'exécution du code.

 
fxsaber:

C'est bien maintenant, mais il a été suggéré de l'annuler, si je comprends bien.

Quel est le lien avec les inludes ?
 
fxsaber:

Il n'y a rien de mal à cela maintenant, mais il a été suggéré de l'annuler, si j'ai bien compris.

Non, c'était mal compris.

Il a été suggéré que le préprocesseur traite le code dans l'ordre. Dans ce cas, les inludes sont insérés dans le code à l'endroit de la première mention de la même manière.
 
Andrey Khatimlianskii:

Non, vous vous trompez.

Le préprocesseur a été suggéré pour traiter le code dans l'ordre. En même temps, les inludes sont insérés dans le code à la place de la première mention.

Le fait est que si les fonctions que vous voulez utiliser sont spécifiées dans l'inlude, vous devez les écrire en suivant la suggestion, si l'inlude est en dessous.

 
fxsaber:

Le fait est que si vous avez spécifié des fonctions dans les inludes que vous allez utiliser, vous devez les écrire selon l'ordre suggéré, si les inludes sont en dessous.

//gcc 5.4.0

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

void g() {f();}

void f() {}

Vous avez parlé de l'ordre, mais vous avez oublié le multipass.

et il semble qu'il y ait un couple d'UBs avec l'ordre

Raison: