kod powinien korzystać abs()
z int
(lub mniej), fabs()
pomocą podwójnej z float
, labs(x)
z long
itp @Joachim Pileborg
Zaleta: nie makro. Makro ABS()
ocenia argument dwukrotnie, prawdopodobnie nie jest pożądany, jak w przypadku ABS(x++)
. @EOF i @EOF
Zaleta: bez makr. Sekwencyjność punktu końcowego. @EOF
Zaleta: bez makr. -0.0
zwraca -0.0
z numerem OP ABS()
. fabs(-0.0)
zwraca 0.0
. jeśli postępuje zgodnie z arytmetyczną zmiennoprzecinkową IEC 60559.
Zaleta: bez makr. ABS(0.0/0.0)
próbuje zmienić znak. (Dotyczy problem rogu).
Zaleta: bez makr. abs()
, fabs()
są funkcjami standardowymi, łatwo zrozumiałymi dla recenzentów. ABS()
nie jest.
Wydajność: znajdź to, co najlepsze na swojej platformie. Co to jest najlepsza (prędkość, rozmiar kodu, rozmiar pamięci) różni się w zależności od kompilatora.
Brak sprawdzania typu za pomocą ABS()
.
Nie można pobrać adresu makra.
Wypróbuj 'abs (x ++)', zobacz dokąd zabierze Cię makro. – EOF
Tak, funkcje 'abs' i' fabs' są * standardowymi * funkcjami. I są to * funkcje *, a nie makra. –
Kod może być bardziej czytelny, jeśli użyte zostanie 'abs' lub' fabs'. – Codor