2010-02-25 21 views

cevap

11

seçenek güvenlidir ama hata ayıklama zorlaştırır. Normal olarak, C derleyici, işlev için yığın çerçevesine bir işaretçiyi (x86 üzerinde ebp) saklayan kodu çıkarır. Hata ayıklayıcılar, yerel değişken içerikleri ve diğer bu tür bilgileri yazdırmak için bunu kullanır. bayrak, gcc'ye bu kayıt ile uğraşmaması gerektiğini bildirir. Bazı durumlarda, bu durum, çoğunlukla daha az kod izi (önbellek için daha iyi) ve ekstra kullanılabilir yazmaç (özellikle 32-bit kipte, özellikle de kayıtlarda açlıktan yoksun olan x86'da) nedeniyle küçük bir performans artışı sağlayabilir. (Eğer biliyorsanız) bahsettiğin gibi

+0

@Thomas Eğer kayıt detayları hakkında bazı bağlantılar sağlayabilir. – Adil

+0

Özellikle işlemci mimarileri için http://refspecs.freestandards.org/elf/, özellikle "Application Binary Interface" belgelerine bakın. I386 için ABI'da, standart yığın çerçeve formatı (ebp'nin kullanımı ile) sayfa 36'da açıklanmıştır. ELF formatı, birçok "modern" Unix benzeri sistem (ör. Linux ve FreeBSD) için ortaktır. Windows sistemlerinde, işler biraz farklıdır ancak aynı prensipleri kullanırlar. –

2

kodunuzu tanımsız davranış dayanmaz sürece, o zaman tamamen güvenli. Tanımsız davranış hatalarının ortaya çıkmasına neden olabilir.

İlgili konular