Deutsch English Français Italiano |
<tkosf6$1oi8$1@gioia.aioe.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!feeder1.feed.usenet.farm!feed.usenet.farm!aioe.org!nEzYORZpWGOXyluHSN+PUw.user.46.165.242.75.POSTED!not-for-mail From: Didier <db@invalid.invalid> Newsgroups: fr.comp.lang.c Subject: Re: /etc/exports option unsecure Date: Sat, 12 Nov 2022 20:33:59 +0100 Organization: Aioe.org NNTP Server Message-ID: <tkosf6$1oi8$1@gioia.aioe.org> References: <tk5q6i$2g2ek$1@dont-email.me> <6369ff7f$0$31523$426a74cc@news.free.fr> <tkj862$j30b$1@dont-email.me> <tkjco0$r73$1@vmserveur.novazur.fr> <tkjg61$jmrn$1@dont-email.me> <tklst8$6qa$1@vmserveur.novazur.fr> <tklu00$1r51$1@gioia.aioe.org> <tkm05o$hmc$1@vmserveur.novazur.fr> <tkm2g0$tfa0$1@dont-email.me> <tkm3k1$nci$2@shakotay.alphanet.ch> <tkm4vp$tnmp$1@dont-email.me> <tkm5ne$et$1@shakotay.alphanet.ch> <tknod5$6ne$1@gioia.aioe.org> <tknp1d$6v3$1@shakotay.alphanet.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gioia.aioe.org; logging-data="57928"; posting-host="nEzYORZpWGOXyluHSN+PUw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: fr Bytes: 3146 Lines: 50 Le 12/11/2022 à 10:29, Marc SCHAEFER a écrit : > [ Followup-To: fr.comp.lang.c ] > > Didier <db@invalid.invalid> wrote: >> C'est sans doute pas top, mais au moins c'est différent de la relation >> de comparaison, au sens mathématique comme au sens commun. > > En fait, le plus grand problème de la notation = (affectation) et == > (comparaison) apparaît dans les langages très expressifs comme C ou > Perl. > > Par exemple en C > > if (f = tcp_connect()) { > } > > Cela appelle tcp_connect, affecte la valeur à la variable f, puis teste > si c'est différent de zéro. C'est très souvent utilisé et c'est > légitime. > > Mais peut-être que le codeur voulait simplement comparer f au résultat > de tcp_connect() sans affecter? Au moins, gcc fait un warning (avec > -Wall), et suggère la forme: > > if ((f = tcp_connect())) { > } > > pour lui montrer que l'intention était bien d'affecter à f puis de > tester le résultat. > > Une bonne pratique si l'on veut éviter une affectation par erreur > (écriture de == remplacée par erreur par =) est la suivante: > > # risque si on oublie un = > if (c == 42) { > } > > # pas de risque, 42 pas affectable, l'oubli d'un = fera > # une erreur, car la partie gauche n'est pas affectable > if (42 == c) { > } > > -- Et pour les afficionados du langage Newton [1] > TAKE PUSH programme; > > [1] https://hopl.info/showlanguage.prx?exp=965&language=Newton Bonsoir, et merci Marc, c'est très pédagogique, comme toujours de ta part. Pour un amateur comme moi (autodidacte en plus, la tare quoi !), c'est toujours bon à prendre. D'autant que j'ai laissé tomber Pascal depuis pas mal de temps, je ne fais plus que du PHP. Didier.