Je viens de voir (c'est pas la première fois finalement) :
Les questions sont liés:
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 unsigned max(unsigned a,unsigned b) { return (a>b)? a : b ; }
Est-ce conseillé? Et comment la machine gère ce genre de code?
Car si il y a simple comparaison, de toute façon, la machine compare comme d'habitude les bits. Mais si il y a une opération a+b par exemple? Et comme gère-t-elle le type et la mémoire qu'elle alloue? Car quand il y aura appel de max, de la mémoire sera alloué pour a et b, et les valeurs passés en argument seront copiés dans celle ci? Comment la machine fait-elle? Elle regarde le type et alloue en conséquence?
Une autre question, est-ce que restrict permet de s'assurer que deux pointeurs ne sont pas les mêmes (donc ne pointent pas sur la même chose):
exemple
vu que je sais que les id sont tous différents, je ne pourrai me retrouver avec une égalité? Mais si je fais appel de type : comp(a,a);, qu'est ce que fais le restrict? Il ne gère pas ça?
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int comp (p *restrict a, p *restrict b) { return (a->id > b->id) - (a->id < b->id); }
je suis pas sûr de comprendre son utilisation.
Partager