Adakah Operator Ternary Lebih Cepat daripada jika...lain dalam C ?

Mary-Kate Olsen
Lepaskan: 2024-11-07 03:10:03
asal
112 orang telah melayarinya

Is the Ternary Operator Faster than if...else in C  ?

Operator Bersyarat ?: lwn. if...else: Perbandingan Prestasi

Dalam C , operator ternary (?) dan pernyataan if...else kedua-duanya digunakan untuk pelaksanaan bersyarat. Walau bagaimanapun, terdapat salah tanggapan bahawa pengendali ternary lebih pantas daripada pernyataan if...else.

Perbandingan Prestasi

Bertentangan dengan kepercayaan popular, operator ternary adalah tidak lebih pantas daripada pernyataan if...else. Kedua-dua pengendali menjana kod pemasangan setara apabila disusun. Kod C berikut menggambarkan kesetaraan ini:

int x = (a > b) ? a : b;

int y;
if (a > b) {
  y = a;
} else {
  y = b;
}
Salin selepas log masuk

Apabila disusun, kedua-dua blok kod ini akan menghasilkan kod pemasangan yang sama, yang melibatkan arahan cawangan bersyarat. Oleh itu, prestasi kedua-dua pengendali adalah sama.

Pemulaan Pemalar

Satu perbezaan halus antara pengendali ternary dan pernyataan if...else ialah bahawa operator ternary membenarkan permulaan pembolehubah malar berdasarkan ungkapan. Contohnya:

const int x = (a < b) ? b : a;
Salin selepas log masuk

Ini tidak boleh dilakukan dengan pernyataan if...else. Walau bagaimanapun, perlu diperhatikan bahawa ciri ini jarang digunakan dalam pengaturcaraan praktikal.

Kesimpulan

Walaupun pengendali ternary menawarkan sintaks ringkas untuk pelaksanaan bersyarat, ia tidak berikan sebarang faedah prestasi berbanding pernyataan if...else. Pilihan antara dua pengendali ini hendaklah berdasarkan kebolehbacaan kod dan keutamaan peribadi.

Atas ialah kandungan terperinci Adakah Operator Ternary Lebih Cepat daripada jika...lain dalam C ?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!