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

 
 
> Ламерской вопрос, массив 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
Ответов
gladov
сообщение Feb 8 2007, 22:18
Сообщение #2


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



DASM полностью прав!!! НЕ МОЖЕТ компилятор положить массив в памяти с дырками! Это противоречит всем законам языка. Я имею полное право сделать так:
Код
uchar test[10];
void test {
    char *ptr;

    //Классический вариант:
    ptr = test + 5;  
    //А теперь так:
    ptr = (uchar*)((void*)test + 5 * sizeof(uchar));
    //И вот так:
    ptr = (uchar*)((int)test + 5 * sizeof(uchar));


Кто покажет мне (и DASM'у) хоть один компилятор, у которого эти три варианта будут не одинаковы???

Хочу сказать отдельное спасибо Alex03 за правильное предупреждение, т.к. доступ через указатель к переменной, не выровненной по умолчанию на архитектуре АРМ может работать некорректно. Я с этим еще не сталкивался, но словив такой глюк, можно долго проблемы разгребать cheers.gif
Go to the top of the page
 
+Quote Post
Alex03
сообщение Feb 9 2007, 07:05
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(gladov @ Feb 9 2007, 00:18) *
Хочу сказать отдельное спасибо Alex03 за правильное предупреждение, т.к. доступ через указатель к переменной, не выровненной по умолчанию на архитектуре АРМ может работать некорректно. Я с этим еще не сталкивался, но словив такой глюк, можно долго проблемы разгребать cheers.gif

Угу, cheers.gif
Мне вот интересно что выдаёт первый цикл из моего примера на других компиляторах?
Кому не лень попробуйте на всяких IAR/Keil/RVDS? Только упаковку (например pragm pack(1) вместо __attribute__ ((__packed__))) надо подправить чтобы sizeof(test_struct_t)=5 было.

Интуиция мне говорит что возможно не все компиллеры такие разборчивые в этом плане как GCC. smile.gif
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   "Массив char в физической памяти будет лежать...   Feb 8 2007, 15:51
|- - Demeny   Цитата(DASM @ Feb 8 2007, 15:51) "Ма...   Feb 8 2007, 16:30
- - 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   Цитата(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 Текстовая версия Сейчас: 21st July 2025 - 19:03
Рейтинг@Mail.ru


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