реклама на сайте
подробности

 
 
> Язык С, ARM - простые вопросы
Slash
сообщение Jan 21 2009, 15:17
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 202
Регистрация: 10-04-05
Из: Санкт-Петербург
Пользователь №: 4 011



Здравствуйте!

Стоит ли пользоваться глобальными переменными и можно ли без них обойтись?
В книгах пишут, что глобальные переменные - плохой тон, можно запутаться.

А если программа строится в виде задач в бесконечном цикле:
Код
while (1)
{
    Task1();
    Task2();
    Task3();
}

Как обмениваться сообщениями между задачами? Мне понравилась система глобальных флагов - данные готовы к отправке, данные приняты, какое-то действие завершено и т.д.
Как без них?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Goodefine
сообщение Jan 23 2009, 19:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Я, вот, по простому спрошу...
Допустим, имеем обработчик некоторого прерывания, в котором надо быстро выполнить неотложные действия и установить один или несколько флагов, дабы потом, в основном цикле их неспешно обработать. Как правильно передать эти флаги в основной цикл не используя глобальных переменных?

Сообщение отредактировал Goodefine - Jan 23 2009, 19:11


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jan 24 2009, 03:01
Сообщение #3


Знающий
****

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



Цитата(Goodefine @ Jan 23 2009, 14:09) *
Я, вот, по простому спрошу...
Допустим, имеем обработчик некоторого прерывания, в котором надо быстро выполнить неотложные действия и установить один или несколько флагов, дабы потом, в основном цикле их неспешно обработать. Как правильно передать эти флаги в основной цикл не используя глобальных переменных?


правильно будет использовать глобальные переменные.
пойнт в том, что их много быть не должно. если их 60 килобайт, как тут пишут - скорее всего чтото не так в консерватории (общий случай сферического коня в ваккууме)


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 24 2009, 08:47
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(A. Fig Lee @ Jan 24 2009, 05:01) *
пойнт в том, что их много быть не должно.

Опять sad.gif пустые рекомендации. Их должно быть столько, сколько надо.
Цитата(VladimirYU @ Jan 24 2009, 10:23) *
Да, сложно представить консерваторию, где ..

Несколько каналов связи. За каждым свои настройки, состояния, буфера. Просто нужно поднять протокол, ну возьмем что-нибудь простое классическое 70x годов прошлого века LAPB/MLP/X.25. Вашими образами - все должно играть по одной партитуре, хотя музыканты вообще сидят в разных городах и правят друг друга по сбоящему каналу связи. Вполне обычная задача для периферийного контроллера. Начинайте расширять свои представления о жизни в которой есть не только "контролеры светодиодов".   


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jan 24 2009, 17:14
Сообщение #5


Знающий
****

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



Цитата(zltigo @ Jan 24 2009, 03:47) *
Опять sad.gif пустые рекомендации. Их должно быть столько, сколько надо.

Несколько каналов связи. За каждым свои настройки, состояния, буфера. Просто нужно поднять протокол, ну возьмем что-нибудь простое классическое 70x годов прошлого века LAPB/MLP/X.25. Вашими образами - все должно играть по одной партитуре, хотя музыканты вообще сидят в разных городах и правят друг друга по сбоящему каналу связи. Вполне обычная задача для периферийного контроллера. Начинайте расширять свои представления о жизни в которой есть не только "контролеры светодиодов".   


ну - почему переменные глобальбые? настройки - для каждого канала (т.е. не глобальные), но все они в глобальном спейсе - плохой дизайн.
глобально может быть виден номер канала - все. остальные пропертис - личное дело етого канала и
должны бы вызыватся скажем через функцию с хендлом, скажем.

я се предстваляю TCP/IP где все глобальное - все данные сокетов и т.д.
sad.gif

ето как кернел - который глобальный для взаимосвязи, остальное все в юзерленд


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 24 2009, 17:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(A. Fig Lee @ Jan 24 2009, 20:14) *
но все они в глобальном спейсе - плохой дизайн.

Ага, все они в стеке это даже не "дизайн" это просто бред.

Цитата
глобально может быть виден номер канала


Упаси бог! "номер канала" ака указатель на конкретную структуру это как раз есть совершенно интимное дело функций работающими с данными каналов.

P.S.


Вы похоже совершенно путаете локальные переменные, глобальные, и области видимости глобальных. 


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jan 25 2009, 13:43
Сообщение #7


Знающий
****

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



Цитата(zltigo @ Jan 24 2009, 12:50) *
Ага, все они в стеке это даже не "дизайн" это просто бред.



Упаси бог! "номер канала" ака указатель на конкретную структуру это как раз есть совершенно интимное дело функций работающими с данными каналов.

P.S.


Вы похоже совершенно путаете локальные переменные, глобальные, и области видимости глобальных. 


Кроме стека есть еще хип. ето совсем не значит что переменные в хипе - глобальные.
И видмость их ограничена, глобальные переменные видны отовсюду.
если вы обьявили переменную из кучи и сделали ее static в С - она глобальной не будет,
несмотря на то, что не на стеке

Так, как я говорил - пишется подавляющее большинство програм.

Кстати, как вы к елементам структуры канала обращаетесь, если

Сообщение отредактировал A. Fig Lee - Jan 25 2009, 13:43


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Slash   Язык С, ARM - простые вопросы   Jan 21 2009, 15:17
- - aaarrr   Цитата(Slash @ Jan 21 2009, 18:17) Стоит ...   Jan 21 2009, 15:29
- - Demeny   Цитата(Slash @ Jan 21 2009, 18:17) Стоит ...   Jan 22 2009, 08:33
|- - aaarrr   Цитата(Demeny @ Jan 22 2009, 11:33) Прави...   Jan 22 2009, 09:09
|- - Demeny   Цитата(aaarrr @ Jan 22 2009, 12:09) Поясн...   Jan 22 2009, 10:20
- - aaarrr   Для отладки глобальные переменные наоборот удобнее...   Jan 22 2009, 11:29
|- - Demeny   Цитата(aaarrr @ Jan 22 2009, 14:29) Для о...   Jan 22 2009, 12:35
||- - aaarrr   Цитата(Demeny @ Jan 22 2009, 15:35) Всё э...   Jan 22 2009, 12:48
||- - singlskv   Цитата(Demeny @ Jan 22 2009, 15:35) Это с...   Jan 23 2009, 00:27
||- - Demeny   Цитата(singlskv @ Jan 23 2009, 03:27) В к...   Jan 23 2009, 07:34
||- - A. Fig Lee   Цитата(singlskv @ Jan 22 2009, 19:27) В к...   Jan 23 2009, 19:06
|- - VladimirYU   Цитата(aaarrr @ Jan 22 2009, 14:29) Для о...   Jan 22 2009, 12:52
|- - zltigo   Цитата(VladimirYU @ Jan 22 2009, 14:52) К...   Jan 22 2009, 13:05
|- - aaarrr   Цитата(VladimirYU @ Jan 22 2009, 15:52) Д...   Jan 22 2009, 13:05
- - sergeeff   Это скорее организационная проблема. Один человек ...   Jan 22 2009, 15:14
|- - zltigo   Цитата(sergeeff @ Jan 22 2009, 17:14) Это...   Jan 22 2009, 17:14
- - rezident   Я бы предложил спорщикам уточнить, для какой облас...   Jan 23 2009, 00:46
- - rezident   Цитата(Demeny @ Jan 23 2009, 12:34) Тепер...   Jan 23 2009, 15:10
|- - singlskv   Цитата(rezident @ Jan 23 2009, 18:10) Мог...   Jan 23 2009, 15:57
|- - Demeny   Цитата(singlskv @ Jan 23 2009, 18:57) Я в...   Jan 26 2009, 09:58
|- - zltigo   Цитата(Demeny @ Jan 26 2009, 12:58) 1) Ес...   Jan 26 2009, 10:32
||- - A. Fig Lee   Цитата(zltigo @ Jan 26 2009, 05:32) Стати...   Jan 26 2009, 14:20
||- - _Pasha   Цитата(A. Fig Lee @ Jan 26 2009, 18:20) Т...   Jan 26 2009, 14:49
|||- - A. Fig Lee   Цитата(_Pasha @ Jan 26 2009, 09:49) Стати...   Jan 26 2009, 17:55
|||- - _Pasha   Цитата(A. Fig Lee @ Jan 26 2009, 21:55) 2...   Jan 26 2009, 18:33
||||- - sonycman   Цитата(_Pasha @ Jan 26 2009, 22:33) стати...   Jan 26 2009, 20:17
||||- - singlskv   Цитата(sonycman @ Jan 26 2009, 23:17) А е...   Jan 26 2009, 20:27
||||- - rezident   Цитата(singlskv @ Jan 27 2009, 01:27) Бол...   Jan 26 2009, 20:40
|||||- - singlskv   Цитата(rezident @ Jan 26 2009, 23:40) Раб...   Jan 26 2009, 21:29
|||||- - sonycman   Цитата(singlskv @ Jan 27 2009, 01:29) Вас...   Jan 26 2009, 21:51
|||||- - Dima_G   Цитата(singlskv @ Jan 27 2009, 01:29) Я э...   Jan 28 2009, 10:21
|||||- - A. Fig Lee   Цитата(Dima_G @ Jan 28 2009, 05:21) Локал...   Jan 28 2009, 14:45
||||- - sonycman   Цитата(singlskv @ Jan 27 2009, 00:27) Пер...   Jan 26 2009, 21:07
|||- - singlskv   Цитата(A. Fig Lee @ Jan 26 2009, 20:55) 2...   Jan 26 2009, 19:45
|||- - A. Fig Lee   Цитата(singlskv @ Jan 26 2009, 14:45) Вот...   Jan 26 2009, 22:07
|||- - zltigo   Цитата(A. Fig Lee @ Jan 27 2009, 01:07) О...   Jan 26 2009, 22:52
|||- - singlskv   Цитата(A. Fig Lee @ Jan 27 2009, 01:07) Н...   Jan 26 2009, 22:52
|||- - A. Fig Lee   Цитата(singlskv @ Jan 26 2009, 17:52) ага...   Jan 26 2009, 23:46
||- - zltigo   Цитата(A. Fig Lee @ Jan 26 2009, 17:20) Т...   Jan 26 2009, 15:22
|- - Dog Pawlowa   Цитата(Demeny @ Jan 26 2009, 12:58) Попро...   Jan 26 2009, 10:45
|- - _Pasha   Цитата(Dog Pawlowa @ Jan 26 2009, 13:45) ...   Jan 26 2009, 11:13
|- - Dog Pawlowa   Цитата(_Pasha @ Jan 26 2009, 14:13) Есть ...   Jan 26 2009, 15:10
|- - _Pasha   Цитата(Dog Pawlowa @ Jan 26 2009, 18:10) ...   Jan 26 2009, 15:23
|- - zltigo   Цитата(_Pasha @ Jan 26 2009, 18:23) Один ...   Jan 26 2009, 15:25
|- - VladimirYU   Цитата(A. Fig Lee @ Jan 24 2009, 06:01) п...   Jan 24 2009, 08:23
|- - _Pasha   Цитата(zltigo @ Jan 24 2009, 11:47) Их до...   Jan 24 2009, 14:43
- - Serj78   Можно, я свои 5 копеек вставлю? Иногда , на мало...   Jan 24 2009, 08:14
- - A. Fig Lee   вот правильный стандард - C++: The zeroinitializa...   Jan 27 2009, 14:42
|- - zltigo   Цитата(A. Fig Lee @ Jan 27 2009, 17:42) в...   Jan 27 2009, 16:10
||- - A. Fig Lee   Цитата(zltigo @ Jan 27 2009, 11:10) Вы, к...   Jan 27 2009, 16:23
|- - singlskv   Цитатакстати, я все никак не добьюсь - речь о C ил...   Jan 27 2009, 22:27
|- - A. Fig Lee   Цитата(singlskv @ Jan 27 2009, 17:27) Ну ...   Jan 27 2009, 23:44
- - rezident   Модератор. Тема закрыта по просьбе топикстартера.   Feb 2 2009, 21:01


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th July 2025 - 09:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.02814 секунд с 7
ELECTRONIX ©2004-2016