[an error occurred while processing this directive]
|
:Уж не знаю что Вам и сказать...
:Создайте проект в VS
:заведите там два файла
:в каждом вне тела функции забейте строку
:
:int mmm[1000];
:
Имеем 2 глобальных массива в двух единицах компиляции. Не вижу проблем.
:откомпилите. Ошибок Вы не получите.
Откомпилив, ошибок я действительно не получу, а вот отлинковав - очень даже может быть.
:Теперь в каждом файле измените Вашу строку на
:
:int mmm[1000] = {0};
:
:Откомпилите. Получите ошибку. Нетрудно догадаться какую.
:Возникает подозрение, что компилер в первом случае посчитал введенную :Вами строчку как объявление массива (без создания самого объекта)
:А во втором, как именно создание объекта.
Подозрение неверно. Нет первого и второго случая - есть две единицы компиляции с вполне легальными картами памяти.
Если Вы не обращались к обьявленным массивам, то компилятор их соптимизировал и до линкера конфликт имен не дошел. Когда Вы начали их юзать, тут уж ... вобщем я писал об этом.
:А мой первоначальный пост посвящен был вообще отдельному компилятору :- для DSP ZSP400 от LSI Logic. Там по моим наблюдениям банальный баг
Не существует в природе компилятора от LSI Logic - это gcc с RTL для ZSP семейства.
:- при объявлении
:
:int mmm[1000];
:
:объекта не создается (как и в VS). Во всяком случае в карте памяти я :его не вижу. Только глобальное имя _mmm. Но вот heap почему-то :уменьшается на 1000 слов. Что мне показалось ни есть правильно.
Гы-гы-гы ;) Как говорит один мой хороший знакомый 'man unix'. От себя могу повторить RTFM. В Вашем возрасте дедуля нужно уже знать чем отличается секция bss от секции data.
Лучше бы рассказали нам в конфе какой он этот северный олень - ZSP.
С удовольствием его бы пощупал - особенно синтезируемый вариант. Они не планируют к выпуску ядрышко с FPU ?
E-mail: info@telesys.ru