[an error occurred while processing this directive]
Скажете тоже, демпфировать пивом...
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=ВН=- 01 декабря 2004 г. 12:47
В ответ на: Скромность, коллега, украшает DSP инженера. отправлено st256 01 декабря 2004 г. 10:23

Тут уж не затухание будет, а выход из строя.
Так я не понял, вопрос у Вас серьезный был? Я его за шуточный принял, мыслеформа вчерашняя подвела. Извините.
Вот насколько знаю, объявление переменных на внешнем уровне, т.е. не в теле ф-ии, со спецификатором static является и его определением, даже без инициализации. То есть под него выделяется память. static int mmm[1000] - определение.
Если static'а нет.
В одном файле есть int mmm[1000] и в другом то же самое.
Одно из них будет определением. Второй объявлением, ссылкой на первое.
Даже в отсутствии у второго спецификатора extern.
И вроде бы даже так - если в одном имеется int mmm[1000], в другом char mmm[1000], то память будет выделена под int, если размер int больше char. Т.е. определением будет int mmm[1000]. char mmm[1000] по сути будет ссылкой на область памяти, выделенную под int.
А чтобы не запутаться - проще, по-моему, использовать спецификатор extern.
В одном файле int mmm[1000], и это будет определением, в другом extern int mmm[1000], и это будет объявлением, ссылкой на первое.
Или, если нужны именно разные массивы, располагающиеся в разных местах памяти, использовать спецификатор static.
В общем у меня такие вот сведения. И еще, вроде все описанное точно и не определено, но могу спутать. Вроде зависит от компилятора разбор таких полетов.
Например в техасовском CCS, в ответ на int mmm[1000] в одном и аналогично в другом, получите ругань линкера. Оно и к лучшему, путаницы меньше будет.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru