#476 Le 27/12/2010, à 00:44
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Bon je vois que l'évaluation des points du CLFB ne fait pas réagir grand monde donc je me lance
CLFB de base => 4 nuits donc 40 points (on pourra « arrondir » à 42 ).
CLFB avec option => 7 nuits donc 70 points.
Gestion des ACL => 1 ou 2 nuits donc 10 ou 20 points, à voir...
Gestion des archives => 2 ou 3 nuits donc 20 ou 30 points, à voir...
Le truc, c'est que si on n'implémente pas toutes les options il faudrait un nombre de points défini par options afin de pouvoir noter comme il faut.
M'enfin, on va dire que c'est un premier jet grossier pour amener d'autres propositions. Quand on aura fixé le nombre de point global on pourra répartir ça option par option.
Je vous avais prévenu que j'étais mauvais pour ce genre de choses, donc à vous de faire vos propositions pour rectifier le tir
Sur ce, BN World !
Dernière modification par grim7reaper (Le 27/12/2010, à 01:03)
Hors ligne
#477 Le 27/12/2010, à 01:25
- gnuuat
Re : /* Topic des codeurs couche-tard [3] */
Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !
Hors ligne
#478 Le 27/12/2010, à 01:31
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
/me a changé quelques trucs à sa ligne standard…
gcc -std=c89 -pedantic -Wall -Wextra -Winit-self -Wstrict-prototypes -Wold-style-definition -Wredundant-decls -Wwrite-strings -Wcast-qual -Wconversion -Wunreachable-code -Wformat=2
J'ajoute aussi -Wpadded en debug.
Et bien, à eux deux, -Wconversion et -Wpadded me balancent 42 avertissement pour Libstropt (j'ai compté ).
Je vais avoir du boulot…
(Bon, en même temps j'ai tout en double, étant donné que je compile deux fois, une avec -fpic, l'autre sans.)
.
Dernière modification par Pylade (Le 27/12/2010, à 02:05)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#479 Le 27/12/2010, à 03:05
- Кຼزດ
Re : /* Topic des codeurs couche-tard [3] */
plop
dou
Hors ligne
#480 Le 27/12/2010, à 03:06
- samυncle
Re : /* Topic des codeurs couche-tard [3] */
Hello world
Hors ligne
#481 Le 27/12/2010, à 03:17
- \\Ouranos//
Re : /* Topic des codeurs couche-tard [3] */
Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.
Hors ligne
#482 Le 27/12/2010, à 03:21
- compte supprimé
Re : /* Topic des codeurs couche-tard [3] */
Bn;
#483 Le 27/12/2010, à 04:10
- nesthib
Re : /* Topic des codeurs couche-tard [3] */
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#484 Le 27/12/2010, à 08:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [3] */
Scores totaux, depuis le début :
1) 2171 nesthib
2) 2042 samuncle
3) 1744 Pylade
4) 1373 Кຼزດ
5) 1048 cm-t
6) 1032+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
7) 759 \\Ouranos//
8) 724 helly
9) 716 Р☢w ! ✰ :mad: ✰ (эй !)
10) 517 gnuuat
11) 493 Lagierl
12) 348 tshirtman
13) 196 Askelon
14) 185 Kanor
15) 172 nathéo
16) 121 ǤƦƯƝƬ
17) 93 petifrancais
18) 88 The Uploader
19) 81 Rolinh
20) 78 edge_one
20) 78 pierguiard
22) 70 gulp
23) 59 kamui57
24) 37 ilagas
25) 32 Le Rouge
26) 30 keny
27) 25 GentooUser
27) 25 Morgiver
29) 24 ไ୦บเઢ'
30) 22 xapantu
31) 21 Steap
32) 20 CROWD
33) 18 Ph3nix_
34) 15 timsy
35) 14 kouskous
36) 12 stratoboy
36) 12 sailing
36) 12 sakul
39) 11 alexises
39) 11 Crocoii
41) 10 Toineo
41) 10 NutMotion
41) 10 pseudovingtcinqcaracteres
41) 10 pfriedZ
41) 10 d10g3n
46) 8 Mornagest
47) 7 Vista
48) 6 Zeibux
48) 6 ubuntlin
48) 6 asma.geek
51) 5 tendances-tdct
51) 5 kinouchou
53) 4 danychou56
53) 4 Neros
53) 4 Biaise
53) 4 totoflute
53) 4 pinballyoda ㋛
58) 3 Revan26914
59) 2 SoJaS
59) 2 ceric
61) 1 geenux
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#485 Le 27/12/2010, à 08:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [3] */
Scores de la période en cours :
1) 194 nesthib
2) 157 Pylade
3) 156 Кຼزດ
4) 152 samuncle
5) 145 grim7reaper
6) 90 gnuuat
7) 85 Lagierl
8) 73 Rolinh
9) 68 helly
10) 60 \\Ouranos//
11) 55 tshirtman
12) 41 cm-t
13) 29 The Uploader
14) 25 Р☢w ! ✰ :mad: ✰ (эй !)
15) 18 Kanor
16) 16 Steap
17) 12 sakul
18) 10 pierguiard
18) 10 d10g3n
20) 5 kinouchou
20) 5 Morgiver
22) 3 xapantu
22) 3 Revan26914
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#486 Le 27/12/2010, à 12:04
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Hello World !
/me a changé quelques trucs à sa ligne standard…
gcc -std=c89 -pedantic -Wall -Wextra -Winit-self -Wstrict-prototypes -Wold-style-definition -Wredundant-decls -Wwrite-strings -Wcast-qual -Wconversion -Wunreachable-code -Wformat=2
J'ajoute aussi -Wpadded en debug.
Ouais, mais attention quand même : Wold-style-declaration est redondant.
-Wold-style-declaration (C and Objective-C only)
Warn for obsolescent usages, according to the C Standard, in a declaration. For example, warn if storage-class specifiers like "static" are not the first things in a declaration. This warning is also enabled by -Wextra.
-Wredundant-decls et -Wcast-qual => OK, je vais les ajouter aussi je pense (bien que le premier me semble moyennement utile, au même titre que -Winit-self).
-Wconversion je pensais déjà l'avoir, mais en fait non (comme pour -Wcast-qual, je l'avais juste mis pour le C++ ) donc je vais l'ajouter aussi.
Pour -Wpadded, à voir. Mais ouais, peut-être qu'en mode debug…
De mon côté, j'ai ajouté -Wfloat-equal (je suis étonné de ne pas l'avoir mis avant celui-là), -Wshadow, -Wundef (je l'ai aussi ajouté à mon g++ celui-là), -Wbad-function-cast et -Wcast-align.
Au final, je me retrouve avec ça
alias gcc_profile='gcc -pg -ansi -pedantic -Wall -Wextra -Wformat=2 -Winit-self -O2 -Wcast-qual -Wcast-align -Wconversion -Wwrite-strings -Wstrict-prototypes -Wfloat-equal -Wshadow -Wredundant-decls -Wundef -Wbad-function-cast'
alias gcc_release='gcc -ansi -pedantic -Wall -Wextra -Wformat=2 -Winit-self -O2 -Wcast-qual -Wcast-align -Wconversion -Wwrite-strings -Wstrict-prototypes -Wfloat-equal -Wshadow -Wredundant-decls -Wundef -Wbad-function-cast'
alias gcc_debug='gcc -g -ansi -pedantic -Wall -Wextra -Wformat=2 -Winit-self -Wcast-qual -Wcast-align -Wconversion -Wwrite-strings -Wstrict-prototypes -Wfloat-equal -Wshadow -Wredundant-decls -Wundef -Wbad-function-cast -Wunreachable-code -Wpadded'
Y'a pas à dire, lire le man de gcc le matin ça ne fait pas de mal.
Un jour faudra que je me penche sur les options de debug et d'optimisations (un jour…).
Dernière modification par grim7reaper (Le 27/12/2010, à 14:47)
Hors ligne
#487 Le 27/12/2010, à 15:39
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
[…]
Ouais, mais attention quand même : Wold-style-declaration est redondant.man gcc a écrit :-Wold-style-declaration (C and Objective-C only)
Warn for obsolescent usages, according to the C Standard, in a declaration. For example, warn if storage-class specifiers like "static" are not the first things in a declaration. This warning is also enabled by -Wextra.
C'est pour ça que ne l'ai pas ajouté mais que j'ai ajouté -Wold-style-definition.
-Wredundant-decls et -Wcast-qual => OK, je vais les ajouter aussi je pense (bien que le premier me semble moyennement utile, au même titre que -Winit-self).
[…]
Ça permet déjà de repérer les erreurs d'inclusion d'headers…
[…]
De mon côté, j'ai ajouté -Wfloat-equal (je suis étonné de ne pas l'avoir mis avant celui-là), -Wshadow, -Wundef (je l'ai aussi ajouté à mon g++ celui-là), -Wbad-function-cast et -Wcast-align.
[…]
-Wcast-align, j'ai dû mal comprendre, car je n'ai jamais réussi à recevoir un avertissement de sa part…
-Wshadow et -Wundef, j'ai regardé mais je n'ai pas trouvé ça utile.
Pour -Wfloat-equal et -Wbad-function-cast, je vais aller voir…
Donc, -Wfloat-equal, je l'ajoute tout de suite, suis étonné qu'il ne soit pas activé par -Wall ou -Wextra ; et -Wbad-function-cast, je n'ai pas compris…
Dernière modification par Pylade (Le 27/12/2010, à 15:47)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#488 Le 27/12/2010, à 15:47
- Elzen
Re : /* Topic des codeurs couche-tard [3] */
Et si vous expliquiez à quoi sert chaque option (en français et de façon plus user-friendly que dans le man), afin d'inciter les autres développeurs C à les utiliser également ?
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#489 Le 27/12/2010, à 16:10
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
C'est pour ça que ne l'ai pas ajouté mais que j'ai ajouté -Wold-style-definition.
Arf, effectivement.
Mais j'ai du mal à voir son intérêt du coup…
-Wcast-align, j'ai dû mal comprendre, car je n'ai jamais réussi à recevoir un avertissement de sa part…
Peut-être que sur ton architecture (et la mienne apparemment) les contraintes d'alignement sont assez cool mais ce n'est pas le cas partout.
Perso je le mets pour garantir la portabilité (il y aura un warn si ça pose un problème sur certaines plateformes, ça ne passera pas inaperçu lors de la compilation pour planter violemment à l'exécution).
-Wshadow et -Wundef, j'ai regardé mais je n'ai pas trouvé ça utile.
Pour -Wshadow c'est que je n'aime pas jouer avec le masquage des noms de variables via leurs portées donc ça permet de me signaler mes erreurs d'attention (surtout avec les i, j, k,… c'est vite arrivé).
Pour -Wundef idem, c'est pour prévenir d'éventuelles étourderies avec le préprocesseur.
Donc, -Wfloat-equal, je l'ajoute tout de suite, suis étonné qu'il ne soit pas activé par -Wall ou -Wextra ; et -Wbad-function-cast, je n'ai pas compris…
Pour -Wfloat-equal, le problème c'est qu'il warn sur des tests contre HUGE_VAL (pour distinguer un overflow d'un underflow lorsque strtod positionne errno à ERANGE) par exemple. C'est peut-être pour ça qu'il n'est pas activé par défaut.
Pour -Wbad-function-cast, c'est si tu as la main un peu lourde niveau cast sur les retours de fonctions.
@ArkSeth : j'avais prévu de faire une page sur mon « site » pour expliquer mes réglages de compilo, j'avais même un peu commencé la rédaction mais j'ai plus ou moins laissé tomber par manque de temps. Je la finirais peut-être un jour…
Dernière modification par grim7reaper (Le 27/12/2010, à 16:16)
Hors ligne
#490 Le 27/12/2010, à 16:16
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
D'abord, -pedantic -Wall -Wextra, c'est absolument indispensable, ça active tous les avertissement sur les erreurs les plus grossières ; et ces avertissements ne sont pas susceptibles d'être indésirables.
-Wfloat-equal, ça avertit quand on utilise un opérateur d'égalité sur un flottant.
-Winit-self, ça avertit quand l'initialisation d'une variable dépend d'elle-même.
-Wformat=2, ça avertit quand tu passes des arguments louches à *printf ou *scanf.
-Wcast-qual, ça avertit quand tu convertis d'un type avec les qualificateurs const ou volatile vers un type qui ne les a pas.
-Wwrite-strings, en C, ça avertit si on référence une chaîne littérale avec un pointeur qui n'est pas de type const char* ; en C++ c'est activé par défaut.
-Wstrict-prototypes, en gros ça t'engueule (en C) si tu déclares ou définis une fonction du style int func() au lieu de int func(void).
-Wredundant-decls t'avertit si tu déclares une fonction plusieurs fois.
Voilà.
@grim7reaper : -Wold-style-definition, c'est au cas où je voudrais reprendre du code qui n'est pas de moi…
[…]
Pour -Wfloat-equal, le problème c'est qu'il warn sur des tests contre HUGE_VAL (pour distinguer un overflow d'un underflow lorsque strtod positionne errno à ERANGE) par exemple. C'est peut-être pour ça qu'il n'est pas activé par défaut.
[…]
C'est vrai que c'est un problème…
Ça pourrait justifier un rapport de bug, non ? Il faudrait autoriser seulement si la comparaison est faite avec 0.0 ou HUGE_VAL…
[…]
Pour -Wbad-function-cast, c'est si tu as la main un peu lourde niveau cast sur les retours de fonctions.
[…]
Très lourde, alors…
Dernière modification par Pylade (Le 27/12/2010, à 16:31)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#491 Le 27/12/2010, à 16:33
- Elzen
Re : /* Topic des codeurs couche-tard [3] */
-Winit-self, ça avertit quand l'initialisation d'une variable dépend d'elle-même.
-Wredundant-decls t'avertit si tu déclares une fonction plusieurs fois.
Il me semblait que cela le faisait par défaut (enfin, avec -Wall et -pedantic)
-Wfloat-equal, ça avertit quand on utilise un opérateur d'égalité sur un flottant.
Plaît-il ? On a pas le droit de tester l'égalité entre deux flottants ?
-Wformat=2, ça avertit quand tu passes des arguments louches à *printf ou *scanf.
Tu peux préciser ce que tu appelles louche ?
Edit : Hm
Pour ma calculatrice, je m'en tiendrai à -Wall -pedantic, avec -Wextra et -Wstrict-prototypes, 'y a tout le code yacc/flex qui râle affreusement. Et j'ai plein de fonctions appelées sur les signaux GTK qui râlent parce que je n'utilise pas les paramètres que j'suis obligé de leur passer mais qui ne m'intéressent pas.
Dernière modification par ArkSeth (Le 27/12/2010, à 16:41)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#492 Le 27/12/2010, à 16:47
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
Pylade a écrit :-Winit-self, ça avertit quand l'initialisation d'une variable dépend d'elle-même.
-Wredundant-decls t'avertit si tu déclares une fonction plusieurs fois.Il me semblait que cela le faisait par défaut (enfin, avec -Wall et -pedantic)
Et ben non.
Pylade a écrit :-Wfloat-equal, ça avertit quand on utilise un opérateur d'égalité sur un flottant.
Plaît-il ? On a pas le droit de tester l'égalité entre deux flottants ?
Disons qu'un flottant, on peut plus ou moins l'assimiler à une approximation d'un nombre. Et comparer l'égalité d'une approximation à quoi que ce soit, c'est moyen… Il vaut mieux regarder si l'écart est suffisamment petit à la place.
Pylade a écrit :-Wformat=2, ça avertit quand tu passes des arguments louches à *printf ou *scanf.
Tu peux préciser ce que tu appelles louche ?
-Wformat=2
Enable -Wformat plus format checks not included in -Wformat.
Currently equivalent to -Wformat -Wformat-nonliteral
-Wformat-security -Wformat-y2k.-Wformat
Check calls to "printf" and "scanf", etc., to make sure that the
arguments supplied have types appropriate to the format string
specified, and that the conversions specified in the format string
make sense. This includes standard functions, and others specified
by format attributes, in the "printf", "scanf", "strftime" and
"strfmon" (an X/Open extension, not in the C standard) families (or
other target-specific families). Which functions are checked
without format attributes having been specified depends on the
standard version selected, and such checks of functions without the
attribute specified are disabled by -ffreestanding or -fno-builtin.The formats are checked against the format features supported by
GNU libc version 2.2. These include all ISO C90 and C99 features,
as well as features from the Single Unix Specification and some BSD
and GNU extensions. Other library implementations may not support
all these features; GCC does not support warning about features
that go beyond a particular library's limitations. However, if
-pedantic is used with -Wformat, warnings will be given about
format features not in the selected standard version (but not for
"strfmon" formats, since those are not in any version of the C
standard).Since -Wformat also checks for null format arguments for several
functions, -Wformat also implies -Wnonnull.-Wformat is included in -Wall. For more control over some aspects
of format checking, the options -Wformat-y2k,
-Wno-format-extra-args, -Wno-format-zero-length,
-Wformat-nonliteral, -Wformat-security, and -Wformat=2 are
available, but are not included in -Wall.NOTE: In Ubuntu 8.10 and later versions this option is enabled by
default for C, C++, ObjC, ObjC++. To disable, use -Wformat=0.-Wformat-y2k
If -Wformat is specified, also warn about "strftime" formats which
may yield only a two-digit year.-Wformat-nonliteral
If -Wformat is specified, also warn if the format string is not a
string literal and so cannot be checked, unless the format function
takes its format arguments as a "va_list".-Wformat-security
If -Wformat is specified, also warn about uses of format functions
that represent possible security problems. At present, this warns
about calls to "printf" and "scanf" functions where the format
string is not a string literal and there are no format arguments,
as in "printf (foo);". This may be a security hole if the format
string came from untrusted input and contains %n. (This is
currently a subset of what -Wformat-nonliteral warns about, but in
future warnings may be added to -Wformat-security that are not
included in -Wformat-nonliteral.)NOTE: In Ubuntu 8.10 and later versions this option is enabled by
default for C, C++, ObjC, ObjC++. To disable, use
-Wno-format-security, or disable all format warnings with
-Wformat=0. To make format security warnings fatal, specify
-Werror=format-security.-Wnonnull (C and Objective-C only)
Warn about passing a null pointer for arguments marked as requiring
a non-null value by the "nonnull" function attribute.-Wnonnull is included in -Wall and -Wformat. It can be disabled
with the -Wno-nonnull option.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#493 Le 27/12/2010, à 16:49
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
@grim7reaper : -Wold-style-definition, c'est au cas où je voudrais reprendre du code qui n'est pas de moi…
Ok, c'est pas con.
grim7reaper a écrit :[…]
Pour -Wfloat-equal, le problème c'est qu'il warn sur des tests contre HUGE_VAL (pour distinguer un overflow d'un underflow lorsque strtod positionne errno à ERANGE) par exemple. C'est peut-être pour ça qu'il n'est pas activé par défaut.
[…]C'est vrai que c'est un problème…
Ça pourrait justifier un rapport de bug, non ? Il faudrait autoriser seulement si la comparaison est faite avec 0.0 ou HUGE_VAL
Et contre INFINITY, et NAN, et HUGE_VALF, etc.
Et puis le gros problème, c'est que se sont des directives de préprocesseurs donc quand le compilo passe les substitutions ont été faites. Il ne voit qu'une constante numérique comme les autres alors comment tu veux qu'il distingue le bien du mal dans ce cas-là ?
grim7reaper a écrit :[…]
Pour -Wbad-function-cast, c'est si tu as la main un peu lourde niveau cast sur les retours de fonctions.
[…]Très lourde, alors…
Oui, il faut vraiment y aller. C'est quand je reprends du code extérieur.
Pylade a écrit :-Winit-self, ça avertit quand l'initialisation d'une variable dépend d'elle-même.
-Wredundant-decls t'avertit si tu déclares une fonction plusieurs fois.Il me semblait que cela le faisait par défaut (enfin, avec -Wall et -pedantic)
Pour la multi-déclaration de fonction, il le fait quand elles ont des prototypes différents (pour des prototypes identiques je n'ai pas testé, c'est peut-être là que -Wredundant-decls est utile, sachant que -Wredundant-decls ne se limite pas aux fonctions il me semble)
Pylade a écrit :-Wfloat-equal, ça avertit quand on utilise un opérateur d'égalité sur un flottant.
Plaît-il ? On a pas le droit de tester l'égalité entre deux flottants ?
Fortement déconseillé (dans n'importe quel langage) à cause des problèmes d'arrondis induits pas la représentation interne des des flottants (des fois ça fonctionne, des fois pas donc c'est pas portable).
Même combat pour le test de différence.
Normalement, pour ce genre de tests on peut utiliser une constante du genre EPSILON (fourni par le langage ou à définir soit même)
Pylade a écrit :-Wformat=2, ça avertit quand tu passes des arguments louches à *printf ou *scanf.
Tu peux préciser ce que tu appelles louche ?
Un pointeur de chaîne au lieu d'une chaîne littérale, plus d'arguments que de formats, etc.
Dernière modification par grim7reaper (Le 27/12/2010, à 16:51)
Hors ligne
#494 Le 27/12/2010, à 17:06
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
[…]
Pylade a écrit :grim7reaper a écrit :Pour -Wfloat-equal, le problème c'est qu'il warn sur des tests contre HUGE_VAL (pour distinguer un overflow d'un underflow lorsque strtod positionne errno à ERANGE) par exemple. C'est peut-être pour ça qu'il n'est pas activé par défaut.
[…]C'est vrai que c'est un problème…
Ça pourrait justifier un rapport de bug, non ? Il faudrait autoriser seulement si la comparaison est faite avec 0.0 ou HUGE_VALEt contre INFINITY, et NAN, et HUGE_VALF, etc.
Et puis le gros problème, c'est que se sont des directives de préprocesseurs donc quand le compilo passe les substitutions ont été faites. Il ne voit qu'une constante numérique comme les autres alors comment tu veux qu'il distingue le bien du mal dans ce cas-là ?
[…]
(Et HUGE_VALL. )
Et bien il peut tout simplement regarder si la constante avec laquelle le flottant est comparé est égale à ces constantes particulières…
Mais je viens de voir que ces constantes n'étaient définies que dans C99, c'est grave, ça ?
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#495 Le 27/12/2010, à 18:14
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Et bien il peut tout simplement regarder si la constante avec laquelle le flottant est comparé est égale à ces constantes particulières…
Mouais, j'y ai pensé mais il y a un petit quelque chose qui me dérange. Je n'arrive pas à mettre le doigt dessus mais ce n'est peut-être rien au final.
Pour un rapport de bug, ouais pourquoi pas (il faut vérifier que personne n'a soulevé le problème avant).
Mais je viens de voir que ces constantes n'étaient définies que dans C99, c'est grave, ça ?
Pas toutes, en tout cas HUGE_VAL est correcte en C89 (je n'ai pas de warnings ou d'erreur à ce niveau là)
Hors ligne
#496 Le 27/12/2010, à 18:40
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
Oui, après tests, chez moi en C89 je n'ai que HUGE_VAL, et les quatre autres en C99. Le man n'est pas clair.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#497 Le 27/12/2010, à 18:45
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Il donnent quand même une indication comme quoi HUGE_VAL est un peu différente des autres
On a glibc system, the macro HUGE_VAL is always available.
Dernière modification par grim7reaper (Le 27/12/2010, à 18:46)
Hors ligne
#498 Le 27/12/2010, à 19:41
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
Il donnent quand même une indication comme quoi HUGE_VAL est un peu différente des autres
man INFINITY a écrit :On a glibc system, the macro HUGE_VAL is always available.
Ah, oui. Je n'avais pas regardé dans le man de la glibc, mais dans un générique (qui parle en plus de POSIX), c'est pour ça. Du coup, je trouve ça louche que C89 ne définisse pas HUGE_VAL, alors que strtod qui est définie dans C89 est sensée renvoyer HUGE_VAL. Ça mérite des investigations futures…
[…]
Edit : Hm
Pour ma calculatrice, je m'en tiendrai à -Wall -pedantic, avec -Wextra et -Wstrict-prototypes, 'y a tout le code yacc/flex qui râle affreusement. Et j'ai plein de fonctions appelées sur les signaux GTK qui râlent parce que je n'utilise pas les paramètres que j'suis obligé de leur passer mais qui ne m'intéressent pas.
Et si tu utilisais ça à la place de Yacc ? Il semblerait que tu ne sois pas obligé de réécrire le code…
Sinon, j'ai aussi trouvé ça, très intéressant…
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#499 Le 27/12/2010, à 19:45
- grim7reaper
Re : /* Topic des codeurs couche-tard [3] */
Edit : Hm
Pour ma calculatrice, je m'en tiendrai à -Wall -pedantic, avec -Wextra et -Wstrict-prototypes, 'y a tout le code yacc/flex qui râle affreusement. Et j'ai plein de fonctions appelées sur les signaux GTK qui râlent parce que je n'utilise pas les paramètres que j'suis obligé de leur passer mais qui ne m'intéressent pas.
Au pire, il y a moyen de « berner le warning ». C'est dommage de ce priver d'une bonne option pour ça…
Sinon, j'ai aussi trouvé ça, très intéressant…
Tu viens de la découvrir O_o" ?
Elle est super connu (et utilisé par Python et Haskell, entre autres, en interne)
Dernière modification par grim7reaper (Le 27/12/2010, à 19:49)
Hors ligne
#500 Le 27/12/2010, à 19:48
- Pylades
Re : /* Topic des codeurs couche-tard [3] */
Ben ouais…
Maintenant je comprends pourquoi Python est si bon avec les maths, en interne…
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne