Bonjour,
Voici un code que j'ai trouvé sur le net pour calculer rapidement la racine carré :
Quand je compile ce code avec l'option -O2 de g++, tout se passe bien mais quand je compile avec l'option -O3, j'ai ce warning :
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 inline float CMathFct::squareRoot(float number) { long i; float x, y; const float f = 1.5F; x = number * 0.5F; y = number; i = * ( long * ) &y; //warning ici i = 0x5f3759df - ( i >> 1 ); y = * ( float * ) &i; //warning ici y = y * ( f - ( x * y * y ) ); y = y * ( f - ( x * y * y ) ); return number * y; }
"attention : déréférencement du pointeur type-punned brisera les strictes d'aliases"
Comment faire pour ne plus l'avoir ? Merci
Partager