2010-08-18 13 views
8

in linguaggio assembly, è facile da definire una sezione come:definire una parte di programma in codice C (GCC)

.section foo 

Come può questo essere fatto in codice C? Voglio mettere un pezzo di codice C in una sezione speciale piuttosto che in .text, quindi sarò in grado di mettere quella sezione in una posizione speciale nello script del linker.

Sto utilizzando GCC.

+1

Sono abbastanza sicuro che questo sta per essere specifica del compilatore - forse si può dirci che quello che si sta utilizzando ... –

+2

sguardo al pragma del compilatore per il vostro – pmod

risposta

15

Lo standard C non dice nulla di "sezioni" nel senso che intendi, quindi avrai bisogno di usare estensioni specifiche per il tuo compilatore.

con GCC, si vuole utilizzare l'attributo section:

extern void foobar(void) __attribute__((section("bar"))); 

C'è una certa documentazione limitata here, tra cui un avvertimento:

Alcuni formati di file non supportano sezioni arbitrarie così l'attributo sezione non è disponibile su tutte le piattaforme . Se è necessario mappare l'intero contenuto di di un modulo in una particolare sezione , considerare l'utilizzo delle funzionalità del linker.

+0

grazie uomini/donne. extern void foobar (void) __attribute __ ((section ("bar"))); per me va bene. – richard

Problemi correlati