2010-08-18 12 views
8

W asemblerze, łatwo jest określić sekcję jak:określić sekcję program w kodzie C (GCC)

.section foo 

Jak można to zrobić w kodzie C? Chcę wstawić fragment kodu C w specjalnej sekcji zamiast .text, więc będę mógł umieścić tę sekcję w specjalnej lokalizacji w skrypcie linkera.

Używam GCC.

+1

Jestem całkiem pewien, że to będzie kompilator specyficzne - może pan nam powiedzieć, który z nich używasz ... –

+2

spojrzenie na pragma dla kompilatora – pmod

Odpowiedz

15

Standard C nie mówi nic o "sekcjach" w tym sensie, że masz na myśli, więc będziesz musiał użyć rozszerzeń specyficznych dla twojego kompilatora.

z GCC, będziemy chcieli użyć atrybutu section:

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

Istnieje pewna ograniczona dokumentacja here, w tym ostrzeżeniem:

Niektóre formaty plików nie obsługują dowolne sekcje tak Atrybut sekcji nie jest dostępny na wszystkich platformach . Jeśli chcesz odwzorować całą zawartość modułu na konkretną sekcję , należy zamiast tego rozważyć użycie funkcji łącznika (012).

+0

dzięki mężczyźni/kobiety. extern void foobar (void) __attribute __ ((sekcja ("bar"))); pracuje dla mnie. – richard

Powiązane problemy