avertissement: suggérer des parenthèses autour de cession utilisé comme valeur de vérité de

J'ai ce code, et il est quelque chose que je ne comprends pas

Quand je compile le code suivant:

#include <stdio.h>
#include <stdlib.h>


int main() {

double x=1;
double y=0;

  if (x!=y)
  {
    printf("x!=y\n");
  }
  if (x=y)
  {
  printf("x=y\n");
  }

  return 0;
}

Je aller de l'avertissement suivant: avertissement: suggérer des parenthèses autour de cession utilisé comme valeur de vérité de

Quand je lance le programme j'obtiens le résultat suivant

x!=y
x=y

Pourquoi est-il l'impression x=y si si '=' n'est pas de comparer mais juste pour mettre la valeur, il y a de y dans x.

  • Je sais. néanmoins, il n'a pas répondu à ma question
  • Il n'a pas l'impression x=y pour moi. ideone.com/bsmVgy
  • Oh, désolé ne pas voir que vous semblez avoir la "x=y" de sortie trop. Qui ne peut se faire avec un tout complètement foireuse compilateur, depuis y est de 0. Le compilateur que vous utilisez?
  • -1 pour quelque chose qui n'est pas reproductible.
  • Ne peut pas se reproduire.
  • Ma conjecture est que le programme que vous avez exécuté (qui n'a de sortie x=y) n'est pas exactement le programme que vous avez posté. Fait un changement de source pas obtenir recompilé ? Ou de toute autre manière ne le mauvais binaire se faire rouler?
  • Ne pouvaient pas se reproduire sur les deux MSVC et de la GCC.

InformationsquelleAutor wantToLearn | 2012-10-31