Je viens de voir (c'est pas la première fois finalement) :
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 ;
}
Les questions sont liés:
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
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);
}
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?
je suis pas sûr de comprendre son utilisation.