Rumah > pembangunan bahagian belakang > C++ > Adakah C/C asli menyertakan fungsi tanda?

Adakah C/C asli menyertakan fungsi tanda?

Susan Sarandon
Lepaskan: 2024-12-17 18:52:11
asal
264 orang telah melayarinya

Does C/C   natively include a sign function?

Adakah Fungsi Tanda merupakan Kemasukan Standard dalam C/C ?

Dalam mengejar fungsi yang secara jelas mengembalikan -1 untuk nombor negatif dan 1 untuk nombor positif, soalan semula jadi timbul: adakah fungsi ini wujud secara asli dalam piawaian C/C perpustakaan?

Menyelam ke dalam Jawapan

Untuk mengecewakan awal pengaturcara, perpustakaan standard C/C tidak secara eksplisit menyertakan fungsi "signum" atau "sgn" memenuhi tujuan ini. Walau bagaimanapun, seperti yang ditunjukkan oleh penyelesaian yang disediakan, penyelesaian wujud menggunakan fungsi C selamat jenis:

template <typename T> int sgn(T val) {
    return (T(0) < val) - (val < T(0));
}
Salin selepas log masuk

Kelebihan Pendekatan ini:

Fungsi templat ini menawarkan beberapa faedah:

  • Pelaksanaan Signum Tepat: Ia mengembalikan -1, 0 atau 1, mematuhi takrifan sebenar tanda.
  • Kepelbagaian: Ia boleh digunakan pada pelbagai jenis data, termasuk integer, terapung, beregu, seluar pendek tidak bertanda , dan jenis tersuai.
  • Pelaksanaan Cekap: Templat mengelak panggilan copysign perlahan, mengoptimumkan prestasi melalui kod tanpa cawangan.
  • Pematuhan Standard: Tidak seperti alternatif peralihan bit, ia kekal konsisten dengan semua perwakilan bit.
  • Tinggi- Pemeliharaan Ketepatan: Ia mengekalkan perwakilan ketepatan tinggi dalaman mesin, menghalang pembundaran pramatang ralat.

Kaveat Berpotensi:

  • Masa Penyusunan: Sebagai templat, ia mungkin mengambil masa yang lebih lama untuk menyusun dalam tertentu konteks.
  • Melebihi Pertimbangan: Untuk yang tidak ditandatangani jenis, kod menjana amaran yang boleh diperbetulkan menggunakan lebihan beban.

Atas ialah kandungan terperinci Adakah C/C asli menyertakan fungsi tanda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan