Un nouveau venu demande ! - page 23

 
Михаил:
long est un type variable, mais je répète que ce n'est pas correct.

PositionGetInteger() renvoie le type long. Vous n'avez pas besoin de vous embêter avec des types aussi longs queENUM_POSITION_TYPE.

Quoi qu'il en soit, le programmeur effectue une conversion de type. Vous feriez mieux de l'écrire plus court.

Ils donnent des conseils aux débutants ici...

 

Nextor257:

...

Pourquoi (long) est-il spécifié avant POSITION_TYPE_BUY ?

...

Il s'agit d'un changement de type d'une variable à la volée.

 
Dmitry Fedoseev:

PositionGetInteger() renvoie le type long. Vous n'avez pas besoin de vous embêter avec des types aussi longs queENUM_POSITION_TYPE.

Quoi qu'il en soit, le programmeur effectue une conversion de type. Vous feriez mieux de l'écrire plus court.

Ils donnent des conseils aux débutants ici...

Faux, car il s'agit d'une comparaison :

 if(type==(long)POSITION_TYPE_BUY

Et POSITION_TYPE n'est pas long, mais

ENUM_POSITION_TYPE

Identifiant

Description

POSITION_TYPE_BUY

Acheter

POSITION_TYPE_SELL

Vendez

 
Михаил:

Faux, car ensuite vient la comparaison :

Et POSITION_TYPE n'est pas long, mais

ENUM_POSITION_TYPE

Identifiant

Description

POSITION_TYPE_BUY

Acheter

POSITION_TYPE_SELL

Vendez

Oui... tu as une connaissance très approfondie de la programmation.
 
Dmitry Fedoseev:
Ouaip... vous avez des connaissances très approfondies en programmation.

Vous semblez n'avoir aucune connaissance - seulement de l'ambition !

ENUM_POSITION_PROPERTY_INTEGER

Identifiant

Description

Type

POSITION_TIME

Heure d'ouverture du poste

datetime

POSITION_TEMPS_MSC

Temps d'ouverture de la position en millisecondes à partir du 01.01.1970

long

MISE À JOUR DE LA POSITION_TEMPS

Temps de changement de position en secondes depuis le 01.01.1970

long

POSITION_TIME_UPDATE_MSC

Temps de changement de position en millisecondes depuis le 01.01.1970

long

POSITION_TYPE

Type de poste

ENUM_POSITION_TYPE

POSITION_MAGIQUE

Numéro magique pour la position (voir ORDER_MAGIC)

long

IDENTIFICATEUR DE POSITION

L'identifiant du poste est un numéro unique, qui est attribué à chaque poste nouvellement ouvert et reste inchangé pendant toute sa durée de vie. L'inversion d'une position ne change pas l'identifiant de la position.

long

 
Михаил:

Vous ne semblez pas avoir la moindre connaissance - juste de l'ambition !

ENUM_POSITION_PROPERTY_INTEGER

Identifiant

Description

Type

POSITION_TIME

Heure d'ouverture du poste

datetime

POSITION_TEMPS_MSC

Temps d'ouverture de la position en millisecondes à partir du 01.01.1970

long

MISE À JOUR DE LA POSITION_TEMPS

Temps de changement de position en secondes depuis le 01.01.1970

long

POSITION_TIME_UPDATE_MSC

Temps de changement de position en millisecondes depuis le 01.01.1970

long

POSITION_TYPE

Type de poste

ENUM_POSITION_TYPE

POSITION_MAGIQUE

Numéro magique pour la position (voir ORDER_MAGIC)

long

IDENTIFICATEUR DE POSITION

L'identifiant du poste est un numéro unique, qui est attribué à chaque poste nouvellement ouvert et reste inchangé pendant toute sa durée de vie. L'inversion d'une position ne change pas l'identifiant de la position.

long

Pour la fonction PositionGetDouble()

C'est dans ce cas que les gens disent : "quand on regarde dans le livre, on voit une figurine".

Essayez de le compiler d'abord :

ENUM_POSITION_TYPE z=PositionGetInteger(POSITION_TYPE);

Il y aura un avertissement.

Une même fonction ne peut pas produire différents types dans différents cas. Elle sera longue dans tous les cas. Et croyez-vous que la même fonction renvoie des types différents ? Oui... Personne ne s'étonne des superstitions sur ce forum, c'est normal...

ENUM_POSITION_TYPE dans la colonne type signifie que toutes les valeurs de retour possibles sont dans l'énumérateur correspondant.

Il serait également utile de prêter plus d'attention, le tableau ci-dessus se réfère à PositionGetInteger(), et la PositionGetDouble() écrite ci-dessous n'a rien à voir avec elle du tout.

 

Je me demande qui voit la "figure" ....

Je l'ai écrit comme ça :

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));
 
Dmitry Fedoseev:

Il s'agit d'un changement de type à la volée.

Merci beaucoup.
 
Михаил:

Je me demande qui voit le "chiffre" ....

Je l'ai écrit comme ça :

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));

Pourquoi écrire ENUM_POSITION_TYPE avant le PositionGetInteger ? Car, selon vous, la fonction PositionGetInteger avec l'identifiant POSITION_TYPE renvoie déjà le type ENUM_POSITION_TYPE.

 
Dmitry Fedoseev:

Pourquoi écrire ENUM_POSITION_TYPE avant PositionGetInteger ? Parce que, selon vous, la fonction PositionGetInteger avec l'identifiant POSITION_TYPE renvoie déjà le type ENUM_POSITION_TYPE.

Vous êtes le gourou de la programmation - allez y répondre vous-même....

Et ce n'est pas ma "croyance", mais la documentation...

Mais je pense que la fonctionPositionGetInteger() renvoie toujours la valeur du type LONG et que ce qui se trouvait "à l'intérieur" d'INTRGER ou de LONG n'a aucune importance.

Les développeurs l'ont fait pour éviter d'écrire deux fonctions.

Par conséquent, pour obtenir le type de position(et c'est INTEGER), il est correct de faire ce que j'ai écrit :

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));