Disons que nous avons une base de code qui est utilisée pour de nombreux clients différents, et que nous avons du code qui n'est pertinent que pour les clients de type X. Est-il préférable d'utiliser des directives de préprocesseur pour inclure ce code uniquement dans le client de type X, ou utiliser des instructions if? Pour être plus clair:
// some code
#if TYPE_X_COSTUMER = 1
// do some things
#endif
// rest of the code
ou
if(TYPE_X_COSTUMER) {
// do some things
}
Les arguments auxquels je peux penser sont:
- La directive du préprocesseur entraîne une empreinte de code plus petite et moins de branches (sur les compilateurs non optimisants)
- Si les instructions résultent avec du code qui se compile toujours, par exemple si quelqu'un fait une erreur qui endommagera le code non pertinent pour le projet sur lequel il travaille, l'erreur apparaîtra toujours et il ne corrompra pas la base de code. Sinon, il ne sera pas au courant de la corruption.
- On m'a toujours dit de préférer l'utilisation du processeur à l'utilisation du préprocesseur (si c'est un argument du tout ...)
Qu'est-ce qui est préférable - quand on parle d'une base de code pour de nombreux clients différents?
TYPE_X_CUSTOMER
toujours une macro de préprocesseur?