Линкер создал совокупный массив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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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