[gull] Subtilité de C n° 6 : Tableaux et pointeurs, presque pareils
Daniel Cordey
dc at mjt.ch
Wed Jul 30 10:01:42 CEST 2008
On Tuesday 29 July 2008, Marc Mongenet wrote:
> ((p) = (&((t)[(0)]))).
(petite parenthese). Il ne faut pas hesiter a (sur)utiliser les parehtheses.
Elles ont le merite de declarer sans ambiguite ce qui doit etre accompli,
facilitent le travail du compilateur et evitent bien des erreurs !
> p = &*((t)+(0));
Technique d'ailleurs utilisee massivement par la librairie X11 afin de
calculer les "offset" d'un element dans une structure.
> Je rappelle (voir la subtilité n° 5) que C ne permet pas de
> passer des tableaux en paramètre de fonction.
On dit que le C passe les arguments par "reference", par opposition a d'autres
langages qui passent les arguments par "valeur". Le passage par reference
s'est impose comme etant, de tres loin, le plus rapide; puisque l'on garanti
que l'on passe tous les arguments dans des registres dont la taille est
inferieur ou egale a un "mot" du CPU.
> Que fait ce programme, au juste ?
hi, hi... Tu exageres :-))
dc
More information about the gull
mailing list