Deklaracja

edytuj
double      copysign (double      x, double      y);
float       copysignf(float       x, float       y);
long double copysignl(long double x, long double y);

Plik nagłówkowy

edytuj

math.h

Argumenty

edytuj
x
argument skąd pobiera się wartość bezwzględną
y
argument skąd pobiera się znak

Funkcje z przyrostkami "f" i "l" to inne wersje odpowiedniej funkcji bez przyrostka operujące na innych typach danych.

Funkcja zwraca wartość, której moduł jest równy modułowi x, a znak - znakowi y.

Wartość zwracana

edytuj

Wartości zgodnie z opisem powyżej. Ponadto, jeżeli x jest równe zero, a y jest liczbą ujemną oraz implementacja posiada reprezentacje ujemnego zera, ale nie traktuje jej wszędzie tak samo funkcja zwraca dodatnie zero.

Przykład użycia

edytuj

Funkcja została dodana do języka w standardzie C99.

W przypadku użycia funkcji matematycznych może zaistnieć konieczność podania odpowiedniego argumentu linkerowi, aby ten połączył program z biblioteką matematyczną. Np. na systemach GNU/Linux jest to -lm.