|
Ламерской вопрос, массив unsigned char |
|
|
|
 |
Ответов
|
Feb 8 2007, 22:18
|
Частый гость
 
Группа: Свой
Сообщений: 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 за правильное предупреждение, т.к. доступ через указатель к переменной, не выровненной по умолчанию на архитектуре АРМ может работать некорректно. Я с этим еще не сталкивался, но словив такой глюк, можно долго проблемы разгребать
|
|
|
|
|
Feb 9 2007, 07:05
|
Местный
  
Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034

|
Цитата(gladov @ Feb 9 2007, 00:18)  Хочу сказать отдельное спасибо Alex03 за правильное предупреждение, т.к. доступ через указатель к переменной, не выровненной по умолчанию на архитектуре АРМ может работать некорректно. Я с этим еще не сталкивался, но словив такой глюк, можно долго проблемы разгребать  Угу,  Мне вот интересно что выдаёт первый цикл из моего примера на других компиляторах? Кому не лень попробуйте на всяких IAR/Keil/RVDS? Только упаковку (например pragm pack(1) вместо __attribute__ ((__packed__))) надо подправить чтобы sizeof(test_struct_t)=5 было. Интуиция мне говорит что возможно не все компиллеры такие разборчивые в этом плане как GCC.
|
|
|
|
Сообщений в этой теме
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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|