Je venais d'ecrire la fonction ci-dessous que je suis tombé sur :
http://emmanuel-delahaye.developpez.com/goret.htm
Force 8
* Plus d'un return par fonction
Cette fonction retourne la distance minimum entre :
- p + d
et
- centre

Sachant que -1 représente l'infini.

Il me semble que les return évitent des tests inutiles.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
static inline int min_dist(int centre, int p, int d) {
    if(centre == -1) {
	if(p == -1) {
	    return centre; //j'aurai pu ecrire return -1 c'est pareil
	}
	return p+d;
    }
    if(p == -1) {
	return centre;
    }
    if(p+d < centre) {
	return p+d;
    }
    return centre;
}
Accessoirement je ne comprends pas trop ceci aussi :
Utilisation du type int ou long pour les index.
J'ai toujours vu des int pour les index, quel est le problème sachant que la manipulation d'un int n'est pas plus lente qu'un autre type?