warning: suggest parentheses around assignment used as truth value

warning: suggest parentheses around assignment used as truth value - C++ - Programmation

Marsh Posté le 27-07-2002 à 11:44:35    

Code :
  1. while (fgets(buffer, 256, statefile) != NULL) {
  2.  if ( right = strstr(buffer, "prog" )) {
  3. ...
  4. }

 
 
voila, dans un prog j'ai la ligne la (celle avec le if) qui me génere un warning, mais je comprends pas pourquoi..une recherche google & forum ne m'a pas apporté de solution.
 
 
 

Code :
  1. gcc -g -Wall -o seti seti.c
  2. ...
  3. seti.c: In function `read_workunit_infos':
  4. seti.c:48: warning: suggest parentheses around assignment used as truth value

 
 
voila, gcc 2.95.3 mais ca a pas d'importance je pense.
 
je débute en c et j'aimerais faire un truc propre, sans warnings
 
merci.

Reply

Marsh Posté le 27-07-2002 à 11:44:35   

Reply

Marsh Posté le 27-07-2002 à 11:51:41    

monokrome a écrit a écrit :

 

Code :
  1. while (fgets(buffer, 256, statefile) != NULL) {
  2.  if ( right = strstr(buffer, "prog" )) {
  3. ...
  4. }

 
 
voila, dans un prog j'ai la ligne la (celle avec le if) qui me génere un warning, mais je comprends pas pourquoi..une recherche google & forum ne m'a pas apporté de solution.
 
 
 

Code :
  1. gcc -g -Wall -o seti seti.c
  2. ...
  3. seti.c: In function `read_workunit_infos':
  4. seti.c:48: warning: suggest parentheses around assignment used as truth value

 
 
voila, gcc 2.95.3 mais ca a pas d'importance je pense.
 
je débute en c et j'aimerais faire un truc propre, sans warnings
 
merci.




 

Code :
  1. while (fgets(buffer, 256, statefile) != NULL) {
  2.  if ( (right = strstr(buffer, "prog" ))) {
  3. ...
  4. }

 


---------------
Le Tyran
Reply

Marsh Posté le 27-07-2002 à 12:06:15    

je te remercie
 :jap:

Reply

Marsh Posté le 29-07-2002 à 02:51:13    

Tu fais une affectation dans un if, ce qui est très souvent une erreur = au lieu de ==, d'où le warning.
 
Si c'est vraiment ton intention, il faut être explicite.

Code :
  1. if(     (right = strstr(buffer, "prog" ))!=NULL )
  2. if( bool(right = strstr(buffer, "prog" ))       ) //ou int
  3. if(     (right = strstr(buffer, "prog" ))       )
  4. if(     (right = strstr(buffer, "prog" ))==true ) //mauvais



---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed