fonction vide: compilateur optimise ou pas
Bonjour,
Si je fais ca, dans une classe ou en fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| void fonction(char* chaine)
{
#ifdef DEBUG
cout << chaine;
#endif
}
// ou bien dans une classe
void CMaClasse::fonction(char* chaine)
{
#ifdef DEBUG
cout << chaine;
#endif
}
// Dans mon code
fonction();
pMaClasse->fonction(); |
Et que je compile sans definir le DEBUG, en release par exemple. Est-ce que le compilo detecte que la fonction ne fait rien ou pas? Car c'est bien une optimisation de ne pas faire l'appel!
car techniquement
Code:
1 2 3 4
| #undef DEBUG
fonction();
// revient a =>
/* du vide */ |
Alors:D
PS: je pense que l'on peut compiler en mode asm et regarder si oui ou non on a l'appel, mais je sais pas faire:aie: