Je trouve ça curieux que pedantic avertisse pour du signé/non signé.
Je trouve ça curieux que pedantic avertisse pour du signé/non signé.
Je trouve ça curieux que pedantic avertisse pour du signé/non signé.
Le 14/03/09 10:47, dans <49bb7d46$0$21963$,
« candide » a écrit :Eric Levenez a écrit :Il conviendrait de corriger ces warnings qui peuvent masquer des problèmes
car size_t est non signé et cela peut entraîner des problèmes dans d'autres
programmes.
Et tu recommandes quoi ? Ne pas utiliser size_t ou caster en int (par exemple)
ou autre chose encore ?
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Le 14/03/09 10:47, dans <49bb7d46$0$21963$426a34cc@news.free.fr>,
« candide » <candide@free.invalid> a écrit :
Eric Levenez a écrit :
Il conviendrait de corriger ces warnings qui peuvent masquer des problèmes
car size_t est non signé et cela peut entraîner des problèmes dans d'autres
programmes.
Et tu recommandes quoi ? Ne pas utiliser size_t ou caster en int (par exemple)
ou autre chose encore ?
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Le 14/03/09 10:47, dans <49bb7d46$0$21963$,
« candide » a écrit :Eric Levenez a écrit :Il conviendrait de corriger ces warnings qui peuvent masquer des problèmes
car size_t est non signé et cela peut entraîner des problèmes dans d'autres
programmes.
Et tu recommandes quoi ? Ne pas utiliser size_t ou caster en int (par exemple)
ou autre chose encore ?
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
In article <C5E16365.E4582%,
Eric Levenez wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
In article <C5E16365.E4582%usenet@levenez.com>,
Eric Levenez <usenet@levenez.com> wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
In article <C5E16365.E4582%,
Eric Levenez wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
Le 14/03/09 13:54, dans <gpg9df$d97$, « Marc Espie »
a écrit :In article <C5E16365.E4582%,
Eric Levenez wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
Quel serait ton conseil alors ?
Le 14/03/09 13:54, dans <gpg9df$d97$2@biggoron.nerim.net>, « Marc Espie »
<espie@lain.home> a écrit :
In article <C5E16365.E4582%usenet@levenez.com>,
Eric Levenez <usenet@levenez.com> wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
Quel serait ton conseil alors ?
Le 14/03/09 13:54, dans <gpg9df$d97$, « Marc Espie »
a écrit :In article <C5E16365.E4582%,
Eric Levenez wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
Quel serait ton conseil alors ?
In article <C5E16B98.E4589%,
Eric Levenez wrote:Le 14/03/09 13:54, dans <gpg9df$d97$, « Marc Espie »
a écrit :In article <C5E16365.E4582%,
Eric Levenez wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque
toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
Quel serait ton conseil alors ?
Ignorer l'avertissement et envoyer gcc se faire cuire un oeuf.
In article <C5E16B98.E4589%usenet@levenez.com>,
Eric Levenez <usenet@levenez.com> wrote:
Le 14/03/09 13:54, dans <gpg9df$d97$2@biggoron.nerim.net>, « Marc Espie »
<espie@lain.home> a écrit :
In article <C5E16365.E4582%usenet@levenez.com>,
Eric Levenez <usenet@levenez.com> wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque
toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
Quel serait ton conseil alors ?
Ignorer l'avertissement et envoyer gcc se faire cuire un oeuf.
In article <C5E16B98.E4589%,
Eric Levenez wrote:Le 14/03/09 13:54, dans <gpg9df$d97$, « Marc Espie »
a écrit :In article <C5E16365.E4582%,
Eric Levenez wrote:
Comme strlen retourne un nombre >= 0, je "casterais" en int le code de
retour de strlen.
Je ne suis pas d'accord avec ce conseil, en terme de methodologie. Rajouter
des cast juste pour faire taire un warning du compilateur est presque
toujours
dangereux. C'est un des gros defauts du C, auquel il manque la panoplie de
cast ameliores du C++.
Quel serait ton conseil alors ?
Ignorer l'avertissement et envoyer gcc se faire cuire un oeuf.
Je ne pense pas que ce conseil soit adapté. Comment filtrer les warnings à
traiter de ceux à ignorer ? Tu penses que 20 warnings par source est
acceptable, ou alors c'est 100 ? Peut-être que tu demandes à ton compilateur
d'ignorer tous les warnings et de ne pas les afficher ? Ou alors tu
conseilles d'ajouter ">/dev/null 2>&1" à la ligne de compilation ? :->
Je ne pense pas que ce conseil soit adapté. Comment filtrer les warnings à
traiter de ceux à ignorer ? Tu penses que 20 warnings par source est
acceptable, ou alors c'est 100 ? Peut-être que tu demandes à ton compilateur
d'ignorer tous les warnings et de ne pas les afficher ? Ou alors tu
conseilles d'ajouter ">/dev/null 2>&1" à la ligne de compilation ? :->
Je ne pense pas que ce conseil soit adapté. Comment filtrer les warnings à
traiter de ceux à ignorer ? Tu penses que 20 warnings par source est
acceptable, ou alors c'est 100 ? Peut-être que tu demandes à ton compilateur
d'ignorer tous les warnings et de ne pas les afficher ? Ou alors tu
conseilles d'ajouter ">/dev/null 2>&1" à la ligne de compilation ? :->
le seul interet de size_t, c'est qu'il permet d'utiliser tout l'eventail
de la memoire disponible.
le seul interet de size_t, c'est qu'il permet d'utiliser tout l'eventail
de la memoire disponible.
le seul interet de size_t, c'est qu'il permet d'utiliser tout l'eventail
de la memoire disponible.
In article <C5E16F90.E4590%,
Eric Levenez wrote:Je ne pense pas que ce conseil soit adapté. Comment filtrer les warnings à
traiter de ceux à ignorer ? Tu penses que 20 warnings par source est
acceptable, ou alors c'est 100 ? Peut-être que tu demandes à ton compilateur
d'ignorer tous les warnings et de ne pas les afficher ? Ou alors tu
conseilles d'ajouter ">/dev/null 2>&1" à la ligne de compilation ? :->
Non, je conseille de refactoriser un peu le code pour ne pas avoir 25
instances distinctes du meme warning (en fait ici, on en a 4, ce qui est
encore fort raisonnable).
Je suis totalement pour eliminer les avertissements qui peuvent s'eliminer
sans rajouter de problemes supplementaires au code en terme de
maintainabilite.
La plupart des ajouts de cast sont dangereux et peuvent poser des problemes.
Il faut a chaque fois peser le pour et le contre, pour savoir si le cast
est reellement necessaire.
Pour avoir maintenu du code reel pendant suffisamment longtemps, j'ai vu
pas mal de cas ou il aurait mieux valu laisser le warning s'afficher au lieu
de rajouter un cast... une evolution ulterieure du code ayant conduit a
l'introduction d'un vrai probleme de typage, celui-ci etant completement
masque par le cast, et s'etant revele plus tard (lors des test si tout va
bien, en production en l'absence de suite de tests exhaustive).
Apres, on peut militer pour l'amelioration de gcc... entre autres le
rajout d'intelligence dans le compilateur pour eliminer les warnings
debiles...
In article <C5E16F90.E4590%usenet@levenez.com>,
Eric Levenez <usenet@levenez.com> wrote:
Je ne pense pas que ce conseil soit adapté. Comment filtrer les warnings à
traiter de ceux à ignorer ? Tu penses que 20 warnings par source est
acceptable, ou alors c'est 100 ? Peut-être que tu demandes à ton compilateur
d'ignorer tous les warnings et de ne pas les afficher ? Ou alors tu
conseilles d'ajouter ">/dev/null 2>&1" à la ligne de compilation ? :->
Non, je conseille de refactoriser un peu le code pour ne pas avoir 25
instances distinctes du meme warning (en fait ici, on en a 4, ce qui est
encore fort raisonnable).
Je suis totalement pour eliminer les avertissements qui peuvent s'eliminer
sans rajouter de problemes supplementaires au code en terme de
maintainabilite.
La plupart des ajouts de cast sont dangereux et peuvent poser des problemes.
Il faut a chaque fois peser le pour et le contre, pour savoir si le cast
est reellement necessaire.
Pour avoir maintenu du code reel pendant suffisamment longtemps, j'ai vu
pas mal de cas ou il aurait mieux valu laisser le warning s'afficher au lieu
de rajouter un cast... une evolution ulterieure du code ayant conduit a
l'introduction d'un vrai probleme de typage, celui-ci etant completement
masque par le cast, et s'etant revele plus tard (lors des test si tout va
bien, en production en l'absence de suite de tests exhaustive).
Apres, on peut militer pour l'amelioration de gcc... entre autres le
rajout d'intelligence dans le compilateur pour eliminer les warnings
debiles...
In article <C5E16F90.E4590%,
Eric Levenez wrote:Je ne pense pas que ce conseil soit adapté. Comment filtrer les warnings à
traiter de ceux à ignorer ? Tu penses que 20 warnings par source est
acceptable, ou alors c'est 100 ? Peut-être que tu demandes à ton compilateur
d'ignorer tous les warnings et de ne pas les afficher ? Ou alors tu
conseilles d'ajouter ">/dev/null 2>&1" à la ligne de compilation ? :->
Non, je conseille de refactoriser un peu le code pour ne pas avoir 25
instances distinctes du meme warning (en fait ici, on en a 4, ce qui est
encore fort raisonnable).
Je suis totalement pour eliminer les avertissements qui peuvent s'eliminer
sans rajouter de problemes supplementaires au code en terme de
maintainabilite.
La plupart des ajouts de cast sont dangereux et peuvent poser des problemes.
Il faut a chaque fois peser le pour et le contre, pour savoir si le cast
est reellement necessaire.
Pour avoir maintenu du code reel pendant suffisamment longtemps, j'ai vu
pas mal de cas ou il aurait mieux valu laisser le warning s'afficher au lieu
de rajouter un cast... une evolution ulterieure du code ayant conduit a
l'introduction d'un vrai probleme de typage, celui-ci etant completement
masque par le cast, et s'etant revele plus tard (lors des test si tout va
bien, en production en l'absence de suite de tests exhaustive).
Apres, on peut militer pour l'amelioration de gcc... entre autres le
rajout d'intelligence dans le compilateur pour eliminer les warnings
debiles...
In article <49bba26a$0$27530$,
candide wrote:Je trouve ça curieux que pedantic avertisse pour du signé/non signé.
Ambigu: tu trouves curieux d'avoir des avertissement pour signe/non signe,
ou que -pedantic active ces avertissements ?
Dans certaines circonstances, le melange de signe/non signe est un vrai
probleme. Il va forcement y avoir conversion de l'un des operandes, et cette
conversion peut perdre des valeurs. Pire: ca risque de dependre de la
[....]
* calcul de distance entre deux valeurs:
delta = abs(a - b);
-> echouera lamentablement des que a-b est calcule en non signe.
* parcours de tableau en ordre inverse:
for (i = sizeof(t)/sizeof(t[0]) - 1; i >= 0; i--)
ne fonctionne plus si i est non signe.
le seul interet de size_t, c'est qu'il permet d'utiliser tout l'eventail
de la memoire disponible.
Dans la grosse majorite des codes, l'introduction de size_t pour toutes
les tailles memoire est "absurde": il y a d'autres raisons qui font qu'on
sera de toutes facons sur des tailles beaucoup plus petites (dans notre
jeu de pendu, on parle quand meme de la longueur d'un mot ! meme dans les
estimations les plus folles, 80 caracteres devraient suffire...)
In article <49bba26a$0$27530$426a34cc@news.free.fr>,
candide <candide@free.invalid> wrote:
Je trouve ça curieux que pedantic avertisse pour du signé/non signé.
Ambigu: tu trouves curieux d'avoir des avertissement pour signe/non signe,
ou que -pedantic active ces avertissements ?
Dans certaines circonstances, le melange de signe/non signe est un vrai
probleme. Il va forcement y avoir conversion de l'un des operandes, et cette
conversion peut perdre des valeurs. Pire: ca risque de dependre de la
[....]
* calcul de distance entre deux valeurs:
delta = abs(a - b);
-> echouera lamentablement des que a-b est calcule en non signe.
* parcours de tableau en ordre inverse:
for (i = sizeof(t)/sizeof(t[0]) - 1; i >= 0; i--)
ne fonctionne plus si i est non signe.
le seul interet de size_t, c'est qu'il permet d'utiliser tout l'eventail
de la memoire disponible.
Dans la grosse majorite des codes, l'introduction de size_t pour toutes
les tailles memoire est "absurde": il y a d'autres raisons qui font qu'on
sera de toutes facons sur des tailles beaucoup plus petites (dans notre
jeu de pendu, on parle quand meme de la longueur d'un mot ! meme dans les
estimations les plus folles, 80 caracteres devraient suffire...)
In article <49bba26a$0$27530$,
candide wrote:Je trouve ça curieux que pedantic avertisse pour du signé/non signé.
Ambigu: tu trouves curieux d'avoir des avertissement pour signe/non signe,
ou que -pedantic active ces avertissements ?
Dans certaines circonstances, le melange de signe/non signe est un vrai
probleme. Il va forcement y avoir conversion de l'un des operandes, et cette
conversion peut perdre des valeurs. Pire: ca risque de dependre de la
[....]
* calcul de distance entre deux valeurs:
delta = abs(a - b);
-> echouera lamentablement des que a-b est calcule en non signe.
* parcours de tableau en ordre inverse:
for (i = sizeof(t)/sizeof(t[0]) - 1; i >= 0; i--)
ne fonctionne plus si i est non signe.
le seul interet de size_t, c'est qu'il permet d'utiliser tout l'eventail
de la memoire disponible.
Dans la grosse majorite des codes, l'introduction de size_t pour toutes
les tailles memoire est "absurde": il y a d'autres raisons qui font qu'on
sera de toutes facons sur des tailles beaucoup plus petites (dans notre
jeu de pendu, on parle quand meme de la longueur d'un mot ! meme dans les
estimations les plus folles, 80 caracteres devraient suffire...)
Apres, on peut militer pour l'amelioration de gcc... entre autres le
rajout d'intelligence dans le compilateur pour eliminer les warnings
debiles...
Je considère que les warnings sur les signés/non signés ne sont pas débiles
et doivent être traités et non ignorés.
Apres, on peut militer pour l'amelioration de gcc... entre autres le
rajout d'intelligence dans le compilateur pour eliminer les warnings
debiles...
Je considère que les warnings sur les signés/non signés ne sont pas débiles
et doivent être traités et non ignorés.
Apres, on peut militer pour l'amelioration de gcc... entre autres le
rajout d'intelligence dans le compilateur pour eliminer les warnings
debiles...
Je considère que les warnings sur les signés/non signés ne sont pas débiles
et doivent être traités et non ignorés.