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
196 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!

sumber:php.cn
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