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

 
 
> Глупые вопросы по типам данных
Spider
сообщение Apr 25 2007, 20:51
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Тока не смейтесь smile.gif
А что означает static & violate (или как-то так) объявление переменных в WinAVR?
И что ещё бывает?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Apr 25 2007, 21:58
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Ой ужос!!!
И куда ж в эмбеддеры без этого? Фундамент блин.
volatile - говорит о том, что данные могут изменится в любой момент и следовательно данная переменная не подлежит оптимизации (например не выносится за пределы цикла, или ее многократный вызов не сокращается до однократного)ю Незаменимо в описании железа - всяческих портов и регистров статуса.

static сложнее.

Если применяется к локальной переменной в функции - значит ее значение сохраняется после выхода из функции. Очень хорош например для счетчиков событий в прерываниях.

Еслли применяется к переменной за пределами функции или к функции - значит область видимости ограничевается данным файлом.
Очень часто встречается связка static inline - для определения инлайновых функций прямо в хидер файле. Получается единственное определение функции при многократном включении файла в проект.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 26 2007, 00:10
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(beer_warrior @ Apr 25 2007, 22:58) *
Очень часто встречается связка static inline - для определения инлайновых функций прямо в хидер файле. Получается единственное определение функции при многократном включении файла в проект.


static inline - это уже плюсы. inline подставляемый статический метод класса. Для глобальных функций использовать очень даже не нужно. Получится совсем наоборот: в каждм модуле будет сгенерирована своя независимая копия inline функции smile.gif


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
dxp
сообщение Apr 26 2007, 07:20
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Oldring @ Apr 26 2007, 04:10) *
static inline - это уже плюсы.

В GCC, к которому относится упомянутый выше WinAVR, имется расширение для С в виде inline, т.ч. это слово там валидно и в С режиме.

Цитата(Oldring @ Apr 26 2007, 04:10) *
inline подставляемый статический метод класса.

Насколько можно судить из:

Цитата
Очень часто встречается связка static inline - для определения инлайновых функций прямо в хидер файле. Получается единственное определение функции при многократном включении файла в проект.


речи тут ни о каких классах вообще нет. Статические функции-члены классов - это несколько из другой оперы.

Кстати, в С++ не бывает статических методов класса. Методы всегда нестатические.

Цитата(Oldring @ Apr 26 2007, 04:10) *
Для глобальных функций использовать очень даже не нужно. Получится совсем наоборот: в каждм модуле будет сгенерирована своя независимая копия inline функции smile.gif

Если функция объявлена как встраиваемая, то она в любом случае будет сгенерирована в каждой единице компиляции отдельно.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alexey Belyaev   Глупые вопросы по типам данных   Apr 25 2007, 20:51
|- - Shamil   Цитата(dxp @ Apr 26 2007, 10:20) Кстати, ...   Apr 26 2007, 08:45
|- - Oldring   Цитата(Shamil @ Apr 26 2007, 09:45) А что...   Apr 26 2007, 09:53
||- - Shamil   Цитата(Oldring @ Apr 26 2007, 12:53) Всег...   Apr 26 2007, 10:18
||- - Oldring   Цитата(Shamil @ Apr 26 2007, 11:18) Если ...   Apr 26 2007, 10:37
||- - dxp   Цитата(Oldring @ Apr 26 2007, 14:37) Ну т...   Apr 26 2007, 11:23
||- - Oldring   Цитата(dxp @ Apr 26 2007, 12:23) Bjarne S...   Apr 26 2007, 12:15
||- - dxp   Цитата(Oldring @ Apr 26 2007, 16:15) Стра...   Apr 26 2007, 14:24
||- - Oldring   Цитата(dxp @ Apr 26 2007, 15:24) В случае...   Apr 26 2007, 14:51
||- - dxp   Цитата(Oldring @ Apr 26 2007, 18:51) В ст...   Apr 26 2007, 16:16
||- - Oldring   Цитата(dxp @ Apr 26 2007, 17:16) Естестве...   Apr 26 2007, 17:36
||- - Legotron   Прошу прощения, что вклиниваюсь в столь жаркую дис...   Apr 27 2007, 13:58
||- - dxp   Цитата(Legotron @ Apr 27 2007, 17:58) Как...   Apr 27 2007, 14:32
||- - Сергей Борщ   Цитата(dxp @ Apr 27 2007, 13:32) Ну и еще...   Apr 27 2007, 19:55
|- - dxp   Цитата(Shamil @ Apr 26 2007, 12:45) А что...   Apr 26 2007, 10:39
|- - Shamil   Цитата(dxp @ Apr 26 2007, 13:39) Никаких ...   Apr 26 2007, 10:43
|- - Oldring   Цитата(Shamil @ Apr 26 2007, 11:43) Тепер...   Apr 26 2007, 10:50
- - mdmitry   Можно использовать оба модификатора. Классы памяти...   Apr 25 2007, 23:23
- - beer_warrior   Цитатаstatic inline - это уже плюсы. inline подста...   Apr 26 2007, 10:19
- - dxp   Цитата(beer_warrior @ Apr 26 2007, 14:19)...   Apr 26 2007, 10:24


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:48
Рейтинг@Mail.ru


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