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

 
 
> Размер unsigned int или int Keil4.5
TAutomatic
сообщение Jun 2 2012, 11:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Добрый день, коллеги.
Месяц использую LPC1768 и только сейчас с "ужасом" заметил, что под переменные unsigned int и int компилятор отводит по 4 байта.
Использую среду Keil 4.5 и постоянно плююсь даже не по причине ее скудости, а по причине неудобности документации на нее и компилятор. Как установить "нормальный" размер этих типов данных размером в 2 байта?
И второй вопрос. Я был уверен, что в Cortex-M3 отсутствует необходимость выравнивания разноразмерных типов данных.
Об этом написано тут
Тем не менее, у себя в реале я этого не вижу. Если за однобайтовой переменной следует четырехбайтовая, то она все равно выравнивается по границе 32 разрядного слова, тоесть остается неиспользуемый промежуток в 3 байта. Что тут не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Jun 7 2012, 05:53
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Герберд Шилдт. Полный справочник по C. (в электронном виде не имею на русском языке, в книжке на русском еще понятнее).
Page 144 - 145
Цитата
Another error that sometimes occurs is caused by incorrect assumptions about the placement of
variables in memory. In general, you cannot know where your data will be placed in memory, or
whether it will be placed there the same way again, or whether different compilers will treat it in the
same way. For these reasons, making any comparisons between pointers that do not point to a
common object may yield unexpected results. For example,

char s[80], y[80];
char *p1, *p2;
p1 = s;
p2 = y;
if(p1 < p2) . . .

is generally an invalid concept. (In very unusual situations, you might use something like this to
determine the relative position of the variables. But this would be rare.)

A related error results when you assume that two adjacent arrays may be indexed as one by simply
incrementing a pointer across the array boundaries. For example:

int first[10], second[10];
int *p, t;
p = first;
for(t=0; t<20; ++t) *p++ = t;

This is not a good way to initialize the arrays first and second with the numbers 0 through 19. Even
though it may work on some compilers under certain circumstances, it assumes that both arrays will
be placed back to back in memory with first first. This may not always be the case.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TAutomatic   Размер unsigned int или int Keil4.5   Jun 2 2012, 11:17
- - ohmjke   Размер int равен размеру машинного слова. В данном...   Jun 2 2012, 11:27
|- - TAutomatic   Цитата(ohmjke @ Jun 2 2012, 14:27) Размер...   Jun 2 2012, 11:33
- - aaarrr   Цитата(TAutomatic @ Jun 2 2012, 15:17) Ка...   Jun 2 2012, 11:30
|- - TAutomatic   Цитата(aaarrr @ Jun 2 2012, 14:30) Исполь...   Jun 2 2012, 11:43
|- - TAutomatic   Получается, все же есть в <stdint.h> - short...   Jun 2 2012, 11:47
|- - aaarrr   Цитата(TAutomatic @ Jun 2 2012, 15:43) Пе...   Jun 2 2012, 11:49
|- - TAutomatic   Цитата(aaarrr @ Jun 2 2012, 14:49) А вы п...   Jun 2 2012, 11:53
|- - prottoss   Цитата(TAutomatic @ Jun 2 2012, 17:53) По...   Jun 2 2012, 12:20
||- - TAutomatic   Цитата(prottoss @ Jun 2 2012, 15:20) Вам ...   Jun 2 2012, 12:36
|- - aaarrr   Цитата(TAutomatic @ Jun 2 2012, 15:53) По...   Jun 2 2012, 12:43
|- - TAutomatic   Цитата(aaarrr @ Jun 2 2012, 15:43) Сами р...   Jun 2 2012, 12:54
||- - scifi   Цитата(TAutomatic @ Jun 2 2012, 16:54) Но...   Jun 2 2012, 18:40
|- - prottoss   Цитата(aaarrr @ Jun 2 2012, 18:43) Кодuns...   Jun 2 2012, 12:56
|- - aaarrr   Цитата(prottoss @ Jun 2 2012, 16:56) Наве...   Jun 2 2012, 13:05
|- - prottoss   Цитата(aaarrr @ Jun 2 2012, 19:05) Нет. К...   Jun 2 2012, 13:10
|- - TAutomatic   Цитата(aaarrr @ Jun 2 2012, 16:05) Нет. К...   Jun 5 2012, 05:51
- - ohmjke   ЦитатаМашинное слово — машиннозависимая и платформ...   Jun 2 2012, 11:37
- - ohmjke   Написали же, 2 байтовый это short.   Jun 2 2012, 11:45
- - ohmjke   short он не из stdint.h, а просто является частью ...   Jun 2 2012, 11:50
- - ivainc1789   Не хотел создавать новую тему... Можно ли спросить...   Jun 2 2012, 12:21
|- - ohmjke   Цитата(ivainc1789 @ Jun 2 2012, 16:21) Не...   Jun 2 2012, 12:26
|- - prottoss   Цитата(ivainc1789 @ Jun 2 2012, 18:21) За...   Jun 2 2012, 12:30
- - aaarrr   Char может быть расположен как угодно - на скорост...   Jun 2 2012, 13:28
|- - prottoss   Цитата(aaarrr @ Jun 2 2012, 19:28) Char м...   Jun 2 2012, 13:50
|- - aaarrr   Цитата(prottoss @ Jun 2 2012, 17:50) С пе...   Jun 2 2012, 14:02
|- - prottoss   Цитата(aaarrr @ Jun 2 2012, 20:02) Объясн...   Jun 2 2012, 14:23
- - esaulenka   Я бы предложил не заниматься всякой фигнёй. Особен...   Jun 5 2012, 11:40
|- - TAutomatic   Цитата(esaulenka @ Jun 5 2012, 14:40) Я б...   Jun 5 2012, 16:57
|- - IgorKossak   Цитата(esaulenka @ Jun 5 2012, 14:40) Кей...   Jun 5 2012, 20:08
||- - Dron_Gus   Цитата(IgorKossak @ Jun 6 2012, 00:08) Ке...   Jun 5 2012, 20:24
|- - TAutomatic   Цитата(esaulenka @ Jun 5 2012, 14:40) Я б...   Jun 6 2012, 04:53
|- - ViKo   Цитата(TAutomatic @ Jun 6 2012, 07:53) На...   Jun 6 2012, 05:33
|- - TAutomatic   Цитата(ViKo @ Jun 6 2012, 08:33) Вставил ...   Jun 6 2012, 06:22
|- - demiurg_spb   Цитата(TAutomatic @ Jun 6 2012, 09:22) вд...   Jun 6 2012, 06:30
|- - IgorKossak   Цитата(TAutomatic @ Jun 6 2012, 09:22) А ...   Jun 6 2012, 06:44
|- - ViKo   Цитата(TAutomatic @ Jun 6 2012, 09:22) А ...   Jun 6 2012, 08:43
|- - TAutomatic   Цитата(ViKo @ Jun 6 2012, 11:43) У переме...   Jun 6 2012, 12:31
|- - ViKo   Цитата(TAutomatic @ Jun 6 2012, 15:31) Я ...   Jun 6 2012, 13:05
|- - TAutomatic   Цитата(ViKo @ Jun 6 2012, 16:05) Я провер...   Jun 6 2012, 13:48
- - ViKo   Проверил с тремя __packed. Так я не пробовал. ...   Jun 6 2012, 14:01
|- - TAutomatic   Цитата(ViKo @ Jun 6 2012, 17:01) Проверил...   Jun 6 2012, 14:07
- - andrewlekar   Ребята, я вас умоляю, не делайте так в рабочем код...   Jun 7 2012, 04:45
|- - TAutomatic   Цитата(andrewlekar @ Jun 7 2012, 07:45) Р...   Jun 7 2012, 06:18
|- - Dron_Gus   Цитата(TAutomatic @ Jun 7 2012, 10:18) Да...   Jun 7 2012, 07:22
||- - TAutomatic   Цитата(Dron_Gus @ Jun 7 2012, 10:22) С пе...   Jun 7 2012, 08:16
||- - jcxz   Цитата(TAutomatic @ Jun 7 2012, 14:16) Ну...   Jun 7 2012, 09:08
||- - Dron_Gus   Цитата(jcxz @ Jun 7 2012, 13:08) Позвольт...   Jun 7 2012, 09:20
||- - TAutomatic   Цитата(jcxz @ Jun 7 2012, 12:08) Позвольт...   Jun 7 2012, 09:40
||- - demiurg_spb   Цитата(TAutomatic @ Jun 7 2012, 12:40) Дв...   Jun 7 2012, 10:02
||- - jcxz   Цитата(TAutomatic @ Jun 7 2012, 15:40) Ра...   Jun 7 2012, 10:10
||- - ViKo   Цитата(TAutomatic @ Jun 7 2012, 12:40) за...   Jun 7 2012, 10:16
|||- - jcxz   Цитата(ViKo @ Jun 7 2012, 16:16) Покажите...   Jun 7 2012, 10:20
||- - AHTOXA   Цитата(TAutomatic @ Jun 7 2012, 15:40) Ра...   Jun 7 2012, 10:17
||- - TAutomatic   Цитата(AHTOXA @ Jun 7 2012, 13:17) Может,...   Jun 7 2012, 10:27
|- - ViKo   Цитата(TAutomatic @ Jun 7 2012, 09:18) Вс...   Jun 7 2012, 10:26
|- - TAutomatic   Цитата(ViKo @ Jun 7 2012, 13:26) Вы не о ...   Jun 7 2012, 10:33
|- - ViKo   Цитата(TAutomatic @ Jun 7 2012, 13:33) См...   Jun 7 2012, 10:58
|- - TAutomatic   Цитата(ViKo @ Jun 7 2012, 13:58) При любо...   Jun 7 2012, 16:40
- - andrewlekar   ЦитатаА при чем тут придет и не поймет rolleyes.gi...   Jun 7 2012, 06:40
|- - TAutomatic   Цитата(andrewlekar @ Jun 7 2012, 09:40) В...   Jun 7 2012, 07:04
- - exeron   Какой упоротый попался... Вам уже цитату из Шилдта...   Jun 7 2012, 10:33
- - KRS   Вообще то для того что бы расположить глобальные о...   Jun 7 2012, 20:19
|- - TAutomatic   Цитата(KRS @ Jun 7 2012, 23:19) Вообще то...   Jun 8 2012, 04:44
|- - demiurg_spb   Цитата(TAutomatic @ Jun 8 2012, 07:44) Со...   Jun 8 2012, 07:11
|- - KRS   Цитата(TAutomatic @ Jun 8 2012, 08:44) Ед...   Jun 8 2012, 09:44
- - esaulenka   Дурацкий вопрос: union-то зачем? Вполне достаточно...   Jun 8 2012, 09:59
|- - KRS   Цитата(esaulenka @ Jun 8 2012, 13:59) Дур...   Jun 8 2012, 12:19
- - brag   В Cortex-M3 выравнивание можно сказать, всегда нуж...   Jun 9 2012, 05:44
|- - TAutomatic   Цитата(brag @ Jun 9 2012, 08:44) Я всегда...   Jun 9 2012, 15:47
- - brag   Вешаем обработчик на исключение UsageFault, а в не...   Jun 9 2012, 16:34
- - TAutomatic   Цитата(brag @ Jun 9 2012, 19:34) Вешаем о...   Jun 9 2012, 18:34


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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 18:46
Рейтинг@Mail.ru


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