untuk banyak tugas cepat di mana seseorang dapat menggunakan suatu fungsi f(x,y)
, di C polos, makro digunakan. Saya ingin bertanya secara khusus tentang kasus-kasus ini, yang dipecahkan oleh pemanggilan fungsi (yaitu makro yang digunakan untuk fungsi inlining, bukan untuk perluasan kode dari kode arbitrer).
Biasanya fungsi C tidak digarisbawahi karena mungkin ditautkan dari file C lainnya. Namun, fungsi C statis hanya terlihat dari dalam file C yang didefinisikan. Oleh karena itu mereka dapat digarisbawahi oleh kompiler. Saya telah mendengar bahwa banyak makro harus diganti dengan mengubahnya menjadi fungsi statis, karena ini menghasilkan kode yang lebih aman.
Apakah ada kasus di mana ini bukan ide yang baik?
Sekali lagi: Tidak bertanya tentang makro Kode-Produksi dengan ## konstruksi yang sama sekali tidak dapat dinyatakan sebagai fungsi.
inline
fungsinya hanya memastikan ia dapat didefinisikan beberapa kali dalam biner, kompiler dapat memutuskan apakah itu benar-benar akan membuatnya menghemat ruang
inline
, ini bukan tentang C ++.
inline
di C, setidaknya sejak C99. Untuk ikhtisar singkat, lihat Wikipedia tentang fungsi sebaris .