Je suis, pour tout dire, tres mitigé sur l'arguement "de la place que ca prend dans le code"...
Car ce problème peut tres facilement être résolu avec de bonnes habitudes/conventions de codages...
En effet, dans quelles circonstances va tu avoir besoin de "unsigned int"![:question:](https://www.developpez.net/forums/images/smilies/icon_question.gif)
- Dans la déclaration de variable
- dans le cadre d'un cast
- dans le cadre d'une allocation dynamique
- dans la déclaration des arguments/valeur de retour d'une fonction...
et pourtant:
la *bonne habitude* consiste à déclarer une variable par ligne.
C'est quand meme prendre un gros rique que de vouloir caster "brutalement" les choses... il est souvent préférable de les transtyper correctement.
un brol = malloc(sizeof(unsigned int)*10); ca prend pas tellement de place que ca (si tu commence à la colone 72 du fait de l'indentation, il est peut etre temps de penser un peu à factoriser tout le reste
)
Sur une fonction dont le prototype serait
unsigned int ma_fonction_au_nom_interminable(unsigned int a, unsigned int b, unsigned int c, unsigned int d, unsigned int e, unsigned int f)
il y a trois manières d'arranger les choses:
La premiere, c'est qu'il faut bien se souvenir que plus un nom est long et complexe, plus le risque est grand de faire une erreur en l'écrivant, avec ou sans complétion automatique (et surtout sans, d'ailleurs)... il serait peut etre opportun de penser à un nom un peu plus court ![;)](https://www.developpez.net/forums/images/smilies/icon_wink.gif)
La deuxième, c'est que trois à quatre arguments à passer semblent etre une limite à essayer de se fixer (au delà, non seulement l'appel a tendance à devenir illisible, mais, en plus, on court un risque beaucoup plus gros d'erreur en voulant passer les arguments)... Meme si dans l'exemple le risque est minimisé du fait que tous les arguments ont tous le meme type... mais les risques de fournir la mauvaise variable comme argument n°3 (passer mava, alors qu'il aurait fallu passer monentier... et que mavar était attendue en... 5eme position) devient, par contre bien plus important ![:P](https://www.developpez.net/forums/images/smilies/icon_razz.gif)
Peut etre est-il temps d'envisager de créer une structure qui contienne ces 6 entiers non signés (allant d'un simple tableau à une structure plus importante) ![:question:](https://www.developpez.net/forums/images/smilies/icon_question.gif)
La dernière possiblité, si les deux autres n'ont pas permis de réduire suffisemment l'espace pris par le prototype de la fonction, est qu'il est toujours possible d'aller à la ligne...
Cette fonction pourrait très bien s'écrire
1 2 3 4 5 6 7 8 9 10 11 12
| unsigned int ma_fonction_au_nom_interminable(unsigned int a, unsigned int b,
unsigned int c, unsigned int d,
unsigned int e, unsigned int f)
/* ---- OU ----OU ---- OU --- */
unsigned int ma_fonction_au_nom_interminable(unsigned int a,
unsigned int b,
unsigned int c,
unsigned int d,
unsigned int e,
unsigned int f)
/* ---- OU ----OU ---- OU --- */
(... il y en a tellement... ) |
Partager