#include <math.h> // <cmath> en C++
double copysign( double x, double y ); // C99
float copysignf( float x, float y ); // C99
long double copysignl( long double x, long double y ); // C99
Ces trois fonctions produisent une valeur ayant la magnitude de x et le signe de y.
Ces éléments ont été ajoutés par la version C99 du standard du langage C.
Ces fonctions renvoient une copie de x dont le signe est celui de y.
L'exemple suivant montre une utilisation simple de ces fonctions.
1 2 3 4 5 6 7 8 |
#include <math.h> #include <stdio.h> #include <stdlib.h> int main() { printf( "copysign(12.0, -1.0) == %g\n", copysign(12.0, -1.0) ); return EXIT_SUCCESS; } |
Il est à noter que la librairie mathématique doit être ajoutée durant l'étape de "link" (édition des liens)
de votre exécutable. Cela se réalise en ajoutant l'option -lm à votre compilateur GCC. En cas
d'utilisation d'un autre compilateur, je vous renvoie vers la documentation de ce dernier.
$> gcc -o sample sample.c -lm $> ./sample copysign(12.0, -1.0) == -12 $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :