Anahtar Farkı – Makro ve Satır İçi İşlev
Bir makro, bir önişlemci yönergesi olan bir kod parçasıdır. Satır içi işlev, bir programın yürütme süresini en aza indirmek için bir C++ geliştirme özelliğidir. Bu nedenle, Makro ve Satır İçi İşlev arasındaki temel fark, bir satır içi işlev derleyici tarafından kontrol edilirken bir makronun önişlemci tarafından kontrol edilmesidir.
Programın başında, önünde bir kare işareti bulunan bir makro bulunur. Programda makro adı olduğunda, makronun içeriği ile değiştirilir.
Makro nedir?
Ön işlemci, kaynak kodu derleyiciden geçmeden önce işleyen bir programdır. Önişlemci komut satırını veya yönergeleri kullanarak çalışır. Programda önişlemci yönergeleri kaynak programda ana programdan önce yer alır. Kaynak kod derleyiciden geçmeden önce, önişlemci yönergeleri için önişlemci tarafından kontrol edilir. Önişlemci yönergelerisembolüne sahiptir. Diğer ifadelerin aksine noktalı virgül ile bitmezler. Bir tür önişlemci yönergesi makrodur. Genellikle makrolar büyük harflerle yazılır.
Şekil 01: Makrolu C++ Programı
Yukarıdaki programa göre 3. satır ve 4. satır makroları gösterir. Alan hesaplanırken tanımlanan makro kullanılarak PI değeri değiştirilir. 14. satırda, hacim=KÜP(değer), önişlemci ifadeyi hacim=(değerdeğerdeğer) olarak genişletir. Küpü bulmak bir fonksiyon olarak yazılabilir ama burada bir makro kullanılarak yazılır. Hacim=KÜP(x+y) şeklinde bir ifade varsa, o zaman hacim=(x+yx+yx+y) şeklinde genişleyecektir.
Bazı programlama belirteçleri kolayca yanlış yazılabilir. Makrolar kullanılarak değiştirilebilirler. Örneğin. define VE &&, define VEYA ||. Bir makro tanımı, define AREA 45.56. gibi ifadeler de içerebilir.
Satır İçi İşlev nedir?
Bir işlev çağrıldığında, derleyicinin onu yürütmesi biraz zaman alır. İşlev çok karmaşık değilse, programcı işlevi satır içi işleve dönüştürebilir. Aşağıdaki programa bakın.
Şekil 02: Satır İçi Olmayan İşlev
print_hello basit bir işlevdir. İşlev çağrıldığında “Merhaba” dizesini yazdırır. Bu işlevin yürütme süresi 0.187 saniyedir. Aşağıdaki gibi satır içi anahtar kelime kullanıldığında, yürütme süresi 0,064 saniyeye düşer.
Şekil 03: Satır İçi İşlev
Bu nedenle, satır içi anahtar kelime kullanıldığında yürütme süresi azalır. Döngüler, anahtar deyimleri varsa ve işlev statik değişkenler veya özyinelemeli işlevler içeriyorsa satır içi işlevler çalışmayabilir.
Makro ve Satır İçi İşlev Arasındaki Fark Nedir?
Makro ve Satır İçi İşlev |
|
Bir makro, programın başında bir kare işaretiyle başlayan bir önişlemci yönergesi olan bir kod parçasıdır. | Satır içi işlev, bir programın yürütme süresini en aza indirmek için bir C++ geliştirme özelliğidir. |
Değerlendirme Süresi | |
Makroda, argüman programda her kullanıldığında değerlendirilir. | Satır içi, bağımsız değişken bir kez değerlendirilir. |
Kontrol Eden | |
Bir makro önişlemci tarafından kontrol edilir. | Satır içi bir işlev derleyici tarafından kontrol edilir. |
Anahtar Kelime | |
Marco, define kullanır. | Satır içi işlev, "satır içi" anahtar kelimesini kullanır. |
Kullanım | |
Makro, sabitleri, ifadeleri, değişmez metin ikamesi için ve işlevleri vb. tanımlamak için kullanılabilir. | Programın yürütme süresini en aza indirmek için bir satır içi işlev kullanılabilir. |
Sonlandırma | |
Makro yeni satırla sonlanır. | Satır içi işlevi, satır içi işlevin sonunda küme ayracı ile sonlanır. |
Nokta Tanımlama | |
Programın başında bir Marco tanımlanır. | Bir satır içi işlev sınıfın içinde veya dışında olabilir. |
Özet – Makro ve Satır İçi İşlev
Bu makale, Makro ve Satır İçi İşlev arasındaki farkı tartıştı. Bu kavramlar C++ programlamasında kullanılır. Makro ve Satır İçi İşlev arasındaki fark, bir satır içi işlevi derleyici tarafından kontrol edilirken bir makronun önişlemci tarafından kontrol edilmesidir.