[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