|
|
  |
Язык С, ARM - простые вопросы |
|
|
|
Jan 26 2009, 10:45
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Demeny @ Jan 26 2009, 12:58)  Попробую ещё раз пояснить ... Этап системного проектирования, постановки задачи и разбиения задачи на подзадачи вообще-то присутствует? Вот и выбирается на этом этапе все, включая способы взаимодействия, ресурсы, особенности. В общем случае "глобальность против локальности" не имеет решения. Та же "реентерабельность". Почему printf не реентерабельный, не задумывались? Почему разработчики компиляторов не хотят осчастливить страждущих?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jan 26 2009, 14:20
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(zltigo @ Jan 26 2009, 05:32)  Статически-то зачем? Спросили сколько надо у менеджера памяти. А вот стек, который потребуется Вам для Вашего непрогнозируемого количества "UART-ов" Вы как раз скорее всего статически-то и выделите.
Товарищи капиталисты, по-моему вы путаете теплое с мягким. Глобальное - то, что видно отовсюду и всегда живет (возможно спорно), Локальное - определено и живет в пределах обьекта к которому принадлежит. Пример - переменные обьявленные внутри функции - локальные для етой функции ( совсем не обязательно они должны быть на стеке), переменные обьявленные внутри класс/структуры - локальны для етих классов/структур и глобально (без структуры/класса) - невидимы. Могут размещатся в хипе, от етого глобальными не становятся.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jan 26 2009, 17:55
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(_Pasha @ Jan 26 2009, 09:49)  Статическое - это то, что видно только там, где надо, и всегда живет. Не путайте мертвое с пьяным  смотря о каких языках говорил - C или C++? 2. живет не всегда. например, обьявленная внутри функции - с момента обращения к функции. Цитата(zltigo @ Jan 26 2009, 10:22)  Это у Вас каша  из глобальности и области видимости, на что я уже сразу указывал. видимость переменной может быть и глобальной, но она являтся локальной - обьявить паблик мембер - член класса
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jan 26 2009, 19:45
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(A. Fig Lee @ Jan 26 2009, 20:55)  2. живет не всегда. например, обьявленная внутри функции - с момента обращения к функции. Живет она как раз всегда, а вот увидеть ее мы можем другой функцией только после обращения к фунцкии в которой она определена(а можем и не увидеть если не захотим...). Вот с вашей точки зрения в таком коде: Код void someFunc() { static unsigned char ch; ................ } переменная ch глобальная или локальная ? Разница между глобальными и локальными ИМХО, заключается в том что к глобальной(если захочу), могу обратиться из любой другой функции, а вот к локальной только из функции в которой она создана.
|
|
|
|
|
Jan 26 2009, 20:27
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(sonycman @ Jan 26 2009, 23:17)  А если статическая переменная локальная? Разве её инициализация будет производиться в стартапе? Переменная из моего предыдущего поста статическая и объявлена в теле функции, ее инициализация будет проведена в стартапе. Более того(если захотеть), менять ее можно будет и из другой функции.
|
|
|
|
|
Jan 26 2009, 20:40
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(singlskv @ Jan 27 2009, 01:27)  Более того(если захотеть), менять ее можно будет и из другой функции. Я извиняюсь, что вмешиваюсь. Работать с этой переменной в другой функции можно будет только по указателю, который данная функция должна сообщить другой, но не по символическому имени переменной. Я тут некоторое время назад пояснял одному (точнее одной  ) пользователю о типах переменных. Может интересно будет.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|