Flamboyan


F di C vs C ++

Tampaknya dengan saya uji kasus kecil yang kadang-kadang berfungsi panggilan akan nol kembali mendaftar sebelum memanggil fungsi yang tidak mengambil argumen, tapi kali lain tidak. Sementara main-main dengan beberapa kode C di godbolt Compiler Explorer, saya terus melihat kasus lucu tertentu. Setelah pemeriksaan lebih dekat, sepertinya perbedaan antara definisi fungsi, khususnya f.What memberikan, yang mereka tidak menyatakan f yang sama; fungsi yang tidak mengambil parameter? Sayangnya, di C jawabannya adalah tidak, dan C dan C ++ berbeda di sini. Jadi harus cukup jelas sekarang bahwa pola f does.Needless mengatakan, Jika Anda menulis kode seperti itu di mana deklarasi fungsi dan definisi tidak cocok, Anda akan dimasukkan ke dalam penjara. Kontrol analisis integritas aliran sangat sensitif terhadap kasus ini, terlihat dalam crash runtime. Tidak lulus pergi, tidak mengumpulkan $ 200) .Jadi dentang bisa berpotensi menghemat satu instruksi, tetapi hanya jika definisi dalam unit terjemahan yang sama dan tidak berbeda dari deklarasi, dan Anda kebetulan menargetkan x86_64. * Kempes wah * Tapi biasanya tidak bisa karena itu hanya diberikan deklarasi melalui sundulan. (source)