IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

problème : attention : comparaison entre des expressions entières signées et non signées


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut problème : attention : comparaison entre des expressions entières signées et non signées
    Bonjour,

    voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    __device__ __host__ inline float cost(string* algSeq, int s1, int s2){
    	float score=0;
    	string seq1=algSeq[s1];
    	string seq2=algSeq[s2];
    	int gap=0;
    	//cout<<"s1 ; "<<s1<<endl;
    	//cout<<"s2 : "<<s2<<endl;
    	for(int i=0; i<strlen(const_cast<char*>(seq1.c_str())) || i<strlen(const_cast<char*>(seq2.c_str())); i++){
    		if(seq1[i]!='-' && seq2[i]!='-'){
    			score+=costMatrix[i][i];//mettre indice correspondant à la lettre
    		}
    		else{
    			gap++;
    		}
    	}
    	return score;
     
    }
    et donc j'ai le warning suivant : attention : comparaison entre des expressions entières signée et non signée!

    je vois pas comment réglé ce problème.

    Alaninho

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    je crois que strlen renvoie un unsigned int, il suffirait donc de changer i en unsigned int.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    C'est extrêmement rigolo ce strlen(const_cast<char*>(seq1.c_str())).
    Tu sais qu'il existe std::string::size() ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Merci, pour vos réponse rapide, et je sais pas pourquoi j'utilisais pas str.size() qui est bien plus pratique.lol.

    encore meric.

    Alaninho

  5. #5
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    strlen renvoie un size_t.

    Sur un système 32 bits , size_t et unsigned int sont équivalents. Sur un système 64 bits ce n'est pas toujours vrai. Il faut mieux utiliser les bons types plutôt que des interprétations douteuses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de relation entre des tables
    Par dodie84 dans le forum Modélisation
    Réponses: 2
    Dernier message: 20/05/2008, 16h07
  2. Réponses: 6
    Dernier message: 15/05/2008, 15h20
  3. Problème de conflit entre des méthodes de winuser et de afxwin
    Par Lucas Panny dans le forum Visual C++
    Réponses: 7
    Dernier message: 13/11/2007, 13h43
  4. [VBA-E]Problème de comparaison entre plusieurs colonnes
    Par JeanMikael dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/07/2007, 17h29
  5. [Access2003/SQLserver2000]Comparaison entre des dates (champs texte)
    Par hoaxpunk dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/06/2007, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo