Menentukan Tanda Nilai Berangka dalam C/C
Dalam pengaturcaraan, menentukan tanda nilai berangka ( 1 untuk positif, -1 untuk negatif) adalah operasi biasa. Walaupun mungkin untuk melaksanakan fungsi pengiraan tanda tersuai, seseorang mungkin tertanya-tanya sama ada terdapat penyelesaian piawai.
Fungsi Tanda Piawai dalam C/C
Tidak, terdapat tiada fungsi tanda piawai yang disediakan oleh perpustakaan standard C atau C khusus untuk berangka jenis.
Pilihan Alternatif untuk Pengiraan Tanda Terapung
Walaupun tiada fungsi tanda khusus, terdapat kaedah alternatif untuk mengira tanda nombor titik terapung. Satu pendekatan popular menggunakan fungsi copysign, yang mengembalikan nilai baharu dengan nilai mutlak nombor yang disediakan dan tanda nombor lain yang ditentukan. Sebagai contoh, anda boleh menggunakannya seperti berikut:
#include <math.h> int sign(float val) { return copysign(1.0f, val); }
Fungsi Tanda Jenis-Selamat C
Penyelesaian yang lebih selamat jenis dan mudah alih adalah untuk menentukan generik fungsi tanda menggunakan templat:
template <typename T> int sgn(T val) { return (T(0) < val) - (val < T(0)); }
Fungsi ini berfungsi untuk sebarang jenis yang boleh dibandingkan dengan sifar dan menyokong kedua-dua tandatangan dan jenis yang tidak ditandatangani.
Faedah dan Kaveat
Fungsi sgn adalah cekap, mematuhi piawaian dan tepat. Walau bagaimanapun, ia adalah templat, yang mungkin memperkenalkan overhed masa kompilasi dalam senario tertentu.
Atas ialah kandungan terperinci Adakah Terdapat Fungsi Tanda Standard dalam C/C untuk Menentukan Tanda Nilai Berangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!