Menggunakan goto adalah praktik pemrograman yang buruk. Mungkin ada beberapa manfaat untuk digunakan dalam kode inti (saya tidak bisa melihatnya), tetapi demi Tuhan jangan menggunakannya dalam contoh.
File yang menarik perhatian saya adalah RIOT/blob/master/examples/gcoap/gcoap_cli.c yang pada baris 139 memiliki goto statememt, yang dapat dengan mudah diganti dengan kode di bawah label end: (hanya dua baris).
untuk contoh gcoap Anda tentu benar. Di sisi lain ada sekitar 30 (sesuatu) penggunaan goto di RIOT secara keseluruhan, mengingat ini adalah sistem operasi IoT (tertanam), jumlah itu agak rendah.
Jadi, jangan ragu untuk memberikan PR yang memperbaiki contoh gcoap, tetapi jika tidak, saya tidak melihat ini sebagai masalah (setidaknya untuk saat ini).
Menggunakan goto adalah praktik pemrograman yang buruk.
Itu bisa diperdebatkan. Menggunakan goto untuk penanganan kesalahan dalam C sebenarnya dianggap sebagai praktik yang baik oleh banyak orang, karena sering kali menghasilkan kode yang lebih mudah dibaca dan lebih sedikit kesalahan.
gcoap_cli.c yang pada baris 139 memiliki goto statememt, yang dapat dengan mudah diganti dengan kode di bawah label end: (hanya dua baris).
Maksud Anda, duplikat panggilan printf?
Maksud Anda, duplikat panggilan printf?
Saya pikir kode dapat dengan mudah dikerjakan ulang menggunakan if .. else if ... else
menghindari goto
tanpa mempengaruhi keterbacaan - yang tidak mungkin dalam semua kasus di mana goto
digunakan.
Maksud Anda, duplikat panggilan printf?
Saya pikir kode dapat dengan mudah dikerjakan ulang menggunakan ...
Tentu. Saya ingin menunjukkan bahwa hanya menyalin dua baris tidak akan memotongnya.
Ini bukan tentang mengurangi baris kode. Ini tentang keterbacaan dan praktik kode yang baik. Ketika goto digunakan sebagai ganti if...else.... maka "itu dianggap berbahaya"