2011-01-21 14 views
10

BenGCC kullanılarak derlenen C dosyalarındaki çıkış bölümlerini nasıl belirleyebilirim? Montaj dilinde

.section init 

C dosyalarında aynı yapmanın bir yolu var mı ıla örneğin çıkışa hangi bölüme assembler anlatmak için .section direktifini kullanın. Bazı dosyaların kodunun farklı bir bölüme geçmesini istiyorum, böylece farklı bellek adresine yükleyebilirim. Biliyorum, ld için bir senaryo oluşturabilirim ve orada bölümler belirleyebilirim ama bunu yapmak istemiyorum. Bunu yapacak C dosyaları için bazı derleyici geçiş veya .section yönerge türü var mı?

+0

Bu soruya benzer: http://stackoverflow.com/questions/3516398/define-a-sections-in-c-code-gcc. –

cevap

14

vardır: Yani

__attribute__((section("section_name"))) 

, örneğin:

void foo() __attribute__((section(".text_foo"))); 

.... 

void foo() {} 

fazla bilgi için here bakın .text_foo

yılında foo yerleştirmek istiyorum.

+0

teşekkürler, ancak bu sadece bir işlev içindir. Tam C dosyası için aynı olacak bir şey istiyorum – binW

+0

İpucu: daha az çirkin yapmak için bir makro kullanabilirsiniz. – Artelius

+0

Makro, taşınabilirlik konusunda da yardımcı olduğu için mükemmel bir seçimdir. –