Линкер создал совокупный массивC++

Программы на C++. Форум разработчиков
Anonymous
Линкер создал совокупный массив

Сообщение Anonymous »

В наборе инструментов C/C ++, доступный под Greenhills. Функция, которая позволяет линкеру построить статический массив в памяти из инициализаторов в нескольких компиляционных единицах. Это использует специально определенные префиксы (

Код: Выделить всё

__ghsentry__
и __ghstable_ ) и выглядит так:
provider_a.c:
MyStruct __ghsentry_command_foo = {"foo", ...};
MyStruct __ghsentry_command_bar = {"bar", ...};
< /code>
provider_b.c:
MyStruct __ghsentry_command_bat = {"bat", ...};
< /code>
user.c:
extern MyStruct *__ghstable_command[];

for (i = 0; __ghstable_command != NULL; i++) { ... }
< /code>
Скомпилировано и связано вместе, это создало бы массив в __ghstable_command, который был четыре записи длиной: три указателя на обнаруженные записи (Foo, Bar и Bat) и завершающая вход NULL. Есть ли что -то подобное, что я пропустил, или мне нужно вручную что -то построить с помощью сценариев и генерации кода?

Подробнее здесь: https://stackoverflow.com/questions/794 ... gate-array

Вернуться в «C++»