Penafian : Saya tahu benar semantik dari awalan dan penambahan postfix. Jadi tolong jangan jelaskan kepada saya bagaimana mereka bekerja.
Membaca pertanyaan tentang stack overflow, saya tidak bisa tidak melihat bahwa programmer menjadi bingung oleh operator kenaikan postfix berulang-ulang. Dari sini muncul pertanyaan berikut: apakah ada kasus penggunaan di mana peningkatan postfix memberikan manfaat nyata dalam hal kualitas kode?
Izinkan saya menjelaskan pertanyaan saya dengan sebuah contoh. Berikut ini adalah implementasi super ringkas strcpy
:
while (*dst++ = *src++);
Tapi itu bukan kode yang paling mendokumentasikan diri sendiri di buku saya (dan menghasilkan dua peringatan yang mengganggu pada kompiler waras). Jadi apa yang salah dengan alternatif berikut?
while (*dst = *src)
{
++src;
++dst;
}
Kami kemudian dapat menyingkirkan penugasan yang membingungkan dalam kondisi tersebut dan mendapatkan kode yang sepenuhnya bebas peringatan:
while (*src != '\0')
{
*dst = *src;
++src;
++dst;
}
*dst = '\0';
(Ya saya tahu, src
dan dst
akan memiliki nilai akhir yang berbeda dalam solusi alternatif ini, tetapi karena strcpy
segera kembali setelah loop, tidak masalah dalam hal ini.)
Tampaknya tujuan penambahan postfix adalah membuat kode sesingkat mungkin. Saya gagal melihat bagaimana ini adalah sesuatu yang harus kita perjuangkan. Jika ini awalnya tentang kinerja, apakah masih relevan hari ini?
int c = 0; c++;
strcpy
metode ini (karena alasan yang telah Anda sebutkan).