return !0 en fin de fonction. D'ou viens cette notation ?

return !0 en fin de fonction. D'ou viens cette notation ? - C - Programmation

Marsh Posté le 03-01-2004 à 00:16:43    

Hello,
 
J'ai vu ceci  
 

Code :
  1. int foo()
  2.     {
  3.     //blabla  
  4.     return !0 ;
  5.      }


 
On est d'accord c'est juste pour savoir si la fonction s'est bien exécutée.  
 
Mais pourquoi !0 et pas 1 ??
 
Avez-vous déjà vu cette notation ?
ça vient d'ou ?

Reply

Marsh Posté le 03-01-2004 à 00:16:43   

Reply

Marsh Posté le 03-01-2004 à 00:27:41    

heu passke la vérité c'est tout ce qui est différent de 0 et le gars ne voulait pas sur-spécifier le résultat ?
 
Il a peut-être oublié ses pilules ce matin là.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-01-2004 à 01:11:06    

vive les booléens en C99

Reply

Marsh Posté le 03-01-2004 à 14:40:35    

oui les booléens n'existent pas. mais est-ce que ça se fai(sai)t vraiment comme ça ?


Message édité par jagstang le 03-01-2004 à 14:40:54
Reply

Marsh Posté le 03-01-2004 à 14:48:24    

oui
 
tu as souvent des définitions de booléens telles que True == 1 et on définit ensuite False == !True
 
 
d'aileurs ce code est peut-être post-préprocesseur. avec FALSE égale à 0 et TRUE définit réciproquement comme !FALSE, on obtient exactement ce code


Message édité par Taz le 03-01-2004 à 14:49:52
Reply

Marsh Posté le 03-01-2004 à 14:56:01    

ok. mais quelle est la différence entre ça et return 1 ; ? aucune on est d'accord ?
 
C'est vraiment pour éviter l'ambiguité de retourner un chiffre précis

Reply

Marsh Posté le 03-01-2004 à 15:02:39    

aucune. c'est juste que comme dit précédemment, par soucis d'orthogonalité, on défini True comme la négation de False. après que le cpp soit passé, on se retorouve avec ce code.
 
il y a fort à parier que le code original était en fait

Code :
  1. BOOL foo()
  2.       {
  3.         //blabla   
  4.    
  5.         return TRUE ;
  6.        }

Reply

Marsh Posté le 03-01-2004 à 15:06:39    

Ok. Merci beaucoup pour cette précision

Reply

Sujets relatifs:

Leave a Replay

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