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

 
 
> Ламерской вопрос, массив unsigned char
Fortune
сообщение Feb 8 2007, 11:10
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 1-02-07
Из: Украина
Пользователь №: 24 940



Я с ARM еще не работал, но у меня появились вопросы.
Если обьявить массив типа unsigned char в ОЗУ
сколько будет занимать один элемент в памяти?
Можно ли сделать так, чтобы он занимал 1 байт?
Если нет, то как легче всего это сделать программно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DASM
сообщение Feb 8 2007, 15:51
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



"Массив char в физической памяти будет лежать так, как на это указывает #pragma pack, то бишь выравнивание, если 4, то каждый элемент массива будет расположен с адреса, кратного 4, то есть занимать 4 байта."
Давайте оставим впокое физическую память, будем говорить про память, адресуемую по скажем [R0] и пусть сама эта память лежит где хочет.
Так вот я утверждаю, что при инкременте R0 на единицу мы получаем доступ к следущему элементу массива. И никакие прагмы паки тут совершенно роли не играют. Не так ?
pragma pack является директивой выравнивания структур, она не имеет отношения к массивам. По крайней мере в части их размещения
Go to the top of the page
 
+Quote Post
Demeny
сообщение Feb 8 2007, 16:30
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(DASM @ Feb 8 2007, 15:51) *
"Массив char в физической памяти будет лежать так, как на это указывает #pragma pack, то бишь выравнивание, если 4, то каждый элемент массива будет расположен с адреса, кратного 4, то есть занимать 4 байта."
Давайте оставим впокое физическую память, будем говорить про память, адресуемую по скажем [R0] и пусть сама эта память лежит где хочет.
Так вот я утверждаю, что при инкременте R0 на единицу мы получаем доступ к следущему элементу массива. И никакие прагмы паки тут совершенно роли не играют. Не так ?
pragma pack является директивой выравнивания структур, она не имеет отношения к массивам. По крайней мере в части их размещения

Зависит от компилятора, размера элемента массива и установленного выравнивания !!!
Если мы говорим о массиве char, размер элемента равен 1.
Если мы установили выравнивание данных, равное 16, то, чтобы получить доступ к следующему элементу массива типа char, Вам в приведенном Вами примере придется увеличить R0 на 16.
В части различия компиляторов -- часть компиляторов применяет #pragma pack только к структурам, при этом для остальных типов у них есть что-то типа #pragma data_align. Это непринципиально. И обсуждалось уже здесь


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Fortune   Ламерской вопрос   Feb 8 2007, 11:10
- - SergeyDDD   все зависит от контроллера памяти и самой памяти г...   Feb 8 2007, 11:22
|- - Fortune   Цитата(SergeyDDD @ Feb 8 2007, 12:22) все...   Feb 8 2007, 11:26
|- - SergeyDDD   Цитата(Fortune @ Feb 8 2007, 12:26) Цитат...   Feb 8 2007, 11:57
- - etoja   При компиляции программы можно указать ключи для в...   Feb 8 2007, 11:34
- - DASM   по-моему ерунду говорите. Массив всегда будет расп...   Feb 8 2007, 12:00
|- - SergeyDDD   Цитата(DASM @ Feb 8 2007, 13:00) по-моему...   Feb 8 2007, 12:15
- - DASM   Значит компилер будет считывать 32-битное значения...   Feb 8 2007, 12:37
|- - SpiritDance   Цитата(DASM @ Feb 8 2007, 12:37) Значит к...   Feb 8 2007, 13:19
|- - Demeny   Цитата(SpiritDance @ Feb 8 2007, 13:19) Ц...   Feb 8 2007, 14:56
|- - Alex03   Цитата(Demeny @ Feb 8 2007, 16:56) Вы оба...   Feb 8 2007, 17:02
- - DASM   не важно кто, важно что для программисты массив ли...   Feb 8 2007, 13:23
- - IgorKossak   Сколько текста! Сколько времени потрачено...   Feb 8 2007, 13:38
- - DASM   ну я собсно и сказал - по барабану кто будет делат...   Feb 8 2007, 15:02
|- - Demeny   Цитата(DASM @ Feb 8 2007, 15:02) ну я соб...   Feb 8 2007, 15:34
- - SpiritDance   Ну я то под процессором имел ввиду сам мк, а не со...   Feb 8 2007, 15:49
- - DASM   И что ? Вы хотите сказать, что вашим шаманством я ...   Feb 8 2007, 16:39
|- - Demeny   Цитата(DASM @ Feb 8 2007, 16:39) И что ? ...   Feb 8 2007, 17:09
- - DASM   SSE4 это хорошо... а что с моим вопросом ?   Feb 8 2007, 17:05
- - DASM   мы по прежнему друг друга не понимаем. Не можете. ...   Feb 8 2007, 17:12
|- - Demeny   Цитата(DASM @ Feb 8 2007, 17:12) мы по пр...   Feb 8 2007, 17:23
- - DASM   через 13 байт. Слитно. Массива ! Будем продолж...   Feb 8 2007, 17:25
|- - Demeny   Цитата(DASM @ Feb 8 2007, 17:25) через 13...   Feb 8 2007, 17:31
|- - Kail   Цитата(DASM @ Feb 8 2007, 17:25) через 13...   Feb 8 2007, 18:03
- - DASM   я смотрел в RAM и вообще причем тут ROM-RAM. Удаля...   Feb 8 2007, 18:07
|- - Andrew2000   Help на Borland C++ Bulder: "The Data Alignm...   Feb 8 2007, 19:16
- - DASM   И чего ??? где тут слово array ? Я только structur...   Feb 8 2007, 19:20
|- - Andrew2000   Цитата(DASM @ Feb 8 2007, 19:20) И чего ?...   Feb 8 2007, 19:30
- - Alex03   По поводу игноригования младших битов адреса в ARM...   Feb 8 2007, 19:22
- - DASM   "А с точки зрения голых Сей результат должен ...   Feb 8 2007, 19:25
|- - Alex03   Цитата(DASM @ Feb 8 2007, 21:25) "А ...   Feb 8 2007, 19:45
- - DASM   ну а вот теперь сделайте из этих variables ARRAY -...   Feb 8 2007, 19:38
|- - Andrew2000   Цитата(DASM @ Feb 8 2007, 19:38) ну а вот...   Feb 9 2007, 01:36
- - DASM   ладно, возможно тут и промахнулся, и тем не менее ...   Feb 8 2007, 19:53
|- - Alex03   Цитата(DASM @ Feb 8 2007, 21:53) ладно, в...   Feb 8 2007, 20:06
- - tegumay   насчет хранения и форматирования данных в памяти э...   Feb 8 2007, 20:12
- - DASM   так... еще лучше.. кто глубже копнет :-D   Feb 8 2007, 20:14
- - gladov   DASM полностью прав!!! НЕ МОЖЕТ компил...   Feb 8 2007, 22:18
|- - Alex03   Цитата(gladov @ Feb 9 2007, 00:18) Хочу с...   Feb 9 2007, 07:05
|- - gladov   Цитата(Alex03 @ Feb 9 2007, 07:05) Мне во...   Feb 9 2007, 10:42
|- - Сергей Борщ   Цитата(gladov @ Feb 9 2007, 09:42) Почему...   Feb 9 2007, 11:23
|- - Alex03   Цитата(gladov @ Feb 9 2007, 12:42) ругает...   Feb 9 2007, 12:49
- - SpiritDance   Блин, сразу видно - DASM вернулся на форум. Ж) Из ...   Feb 9 2007, 10:08
- - DASM   да вы доки читайте ! тама написано, что это не...   Feb 9 2007, 11:19


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:40
Рейтинг@Mail.ru


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