Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2603 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Operand incorect .

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Operand incorect .

n°1759197
chico008
what the wookie says ?
Posté le 14-07-2008 à 15:33:58  profilanswer
 

Bonjour a tous.
 
j'ai recuperer un patch pour OpenTTD.
 
mais voila, a la compilation, j'ai un erreur, sur un operateur qui serait incorrect.
 
http://img411.imageshack.us/img411/4649/clipboardpz8.jpg
 
voici les lignes presente dans le fichier :
 

Code :
  1. 377   data[i][j] += (data[i][j-k] == INVALID_DATAPOINT ? 0 : data[i][j-k]);
  2. 388   data[i][j] -= (data[i][j-1] == INVALID_DATAPOINT ? 0 : data[i][j-1]);


 
INVALID_DATAPOINT est déclarer en int64
 
D'apres l'erreur le ? il aime pas des masses, mais mes connaissances en C etant tres limité, je sais pas comment resourdre ce soucis.
j'ai demander de l'aide a l'auteur, mais lui non plus ne comprend pas, car il a reussi a compiler sans soucis.
 
si vous savez ce qui cloche, merci de votre aide.


Message édité par chico008 le 14-07-2008 à 15:36:31

---------------
Serveur HFR - OpenTTD
mood
Publicité
Posté le 14-07-2008 à 15:33:58  profilanswer
 

n°1759201
Taz
bisounours-codeur
Posté le 14-07-2008 à 15:48:56  profilanswer
 

fais en sorte que 0 soit du même type que data[x][y]


Message édité par Taz le 14-07-2008 à 15:49:15
n°1759216
chico008
what the wookie says ?
Posté le 14-07-2008 à 16:58:29  profilanswer
 

euh, cad ?
je met un data[z][z] avec z égale à 0 ?


Message édité par chico008 le 14-07-2008 à 16:59:37

---------------
Serveur HFR - OpenTTD
n°1759238
dap++
Script kiddie
Posté le 14-07-2008 à 17:42:55  profilanswer
 

C'est un tableau de quel type data ? Sinon tu peux toujours essayer ça :
 

Code :
  1. if (data[i][j-k] != INVALID_DATAPOINT)
  2. {
  3.   data[i][j] += data[i][j-k];
  4. }
  5. if (data[i][j-1] != INVALID_DATAPOINT)
  6. {
  7.   data[i][j] -= data[i][j-1];
  8. }


---------------
dap.developpez.com
n°1759239
tpierron
Posté le 14-07-2008 à 17:45:12  profilanswer
 

Nan, il faut que les types des opérandes soient les mêmes dans ton instruction conditionnelle.
 
0 est de type "int" donc ta variable "data" doit être de type compatible (entier ou double, donc).
 
Bref, montre nous comment ta variable "data" est déclarée. Et si ce n'est pas un type atomique, rajoute la définition du type avec.

n°1759287
chico008
what the wookie says ?
Posté le 14-07-2008 à 21:23:29  profilanswer
 

OverflowSafeInt64 data[GRAPH_MAX_DATASETS][GRAPH_MAX_X_VALUES]
 
byte              color[GRAPH_MAX_DATASETS]
GRAPH_MAX_X_VALUES = 24
 
ca vous va ou pas ?


---------------
Serveur HFR - OpenTTD
n°1759306
tpierron
Posté le 14-07-2008 à 22:07:40  profilanswer
 

Hmm, si le type "OverflowSafeInt64" est dérivé d'un entier, il ne devrait pas raler. Au pire rajoute remplace le 0 par 0LL (zéro, elle, elle), mais normallement la promotion implicite de type devrait s'en charger.
 
Peux tu encore dire comment est déclaré "OverflowSafeInt64" ?

n°1759316
chico008
what the wookie says ?
Posté le 14-07-2008 à 22:34:34  profilanswer
 

euh, alors la, aucune idée.


---------------
Serveur HFR - OpenTTD

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Operand incorect .

 

Sujets relatifs
Dessiner une belle ligne au stylet[C# XML Serialize .net 2.0]
C, pb avec différentes versions de gcc á la compilationC++ et Oracle sans ODBC ni JDBC
Comment coder bool en CInclusion de resources C/C++
Connexion LDAP C++[C] Fournir un projet compilé sous Visual C++ à un ami
Utilisation dll .net dans une application C++ Visual Studio 6aide pour un bootloader en C sur pic32
Plus de sujets relatifs à : [C] Operand incorect .


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR