2010-08-18 12 views
8

en lenguaje ensamblador, es fácil definir una sección como:definen una sección de programa en código C (GCC)

.section foo 

¿Cómo puede ser hecho en código C? Quiero poner un fragmento de código C en una sección especial en lugar de .text, por lo que podré poner esa sección en una ubicación especial en el script del enlazador.

Estoy usando GCC.

+1

estoy bastante seguro de que esto va a ser compilador específico - tal vez usted puede decirnos cuál está utilizando ... –

+2

vistazo a pragma de su compilador para – pmod

Respuesta

15

El estándar C no dice nada sobre "secciones" en el sentido que usted quiere decir, por lo que deberá usar extensiones específicas para su compilador.

con GCC, tendrá que utilizar el atributo section:

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

Existe cierta documentación limitada here, incluyendo una advertencia:

Algunos formatos de archivo no son compatibles secciones arbitrarias por lo el atributo de sección no está disponible en todas las plataformas . Si necesita asignar el contenido completo de de un módulo a una sección particular de , considere usar las instalaciones del vinculador en su lugar.

+0

gracias hombres/mujeres. extern void foobar (void) __attribute __ ((section ("bar"))); funciona para mi. – richard

Cuestiones relacionadas