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

 
 
> Не нашел .h файл в IAR с описанием uint8_t
_Алекс
сообщение Oct 3 2007, 19:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 14-09-06
Пользователь №: 20 377



Похоже, в IAR нет что то типа inttypes.h, может есть у кого заголовочный файл с описанием типов uint8_t, uint16_t и т.д. для IAR как в AVRGCC например.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Oct 4 2007, 01:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(_Алекс @ Oct 4 2007, 03:55) *
Похоже, в IAR нет что то типа inttypes.h, может есть у кого заголовочный файл с описанием типов uint8_t, uint16_t и т.д. для IAR как в AVRGCC например.


Код
#define uint8_t unsigned char

#define uint16_t unsigned int
и т.д


--------------------
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 4 2007, 03:00
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(prottoss @ Oct 4 2007, 10:20) *
Код
#define uint8_t unsigned char

#define uint16_t unsigned int
и т.д

Наверно правильнее все таки так:
typedef unsigned char uint8_t;
typedef unsinged short int uint16_t;
и т.д.
Таким образом мы вводим новые типы, которые поддаются контролю компилятора.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 10:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(haker_fox @ Oct 4 2007, 11:00) *
Наверно правильнее все таки так:
typedef unsigned char uint8_t;
typedef unsinged short int uint16_t;
и т.д.
Таким образом мы вводим новые типы, которые поддаются контролю компилятора.
А зачем мне вводить новый тип, если меня вполне устраивает старый, кроме того, что он длинно пишется :-) - unsinged short int - и я переживаю за свою мультимедийную клавиатуру


--------------------
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 4 2007, 10:37
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(prottoss @ Oct 4 2007, 13:29) *
А зачем мне вводить новый тип, если меня вполне устраивает старый, кроме того, что он длинно пишется :-)
Видимо для того, чтобы переменная имела 16 бит и на ARM и на AVR.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 10:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Сергей Борщ @ Oct 4 2007, 18:37) *
Видимо для того, чтобы переменная имела 16 бит и на ARM и на AVR.
Вы считаете что тип unsinged short int будет иметь разное количество бит для AVR и ARM?
Код
#define UINT16 unsinged short int
...
UINT16 var;

Переменная var для двух вышеназванных платформ будет разной длины?


--------------------
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 4 2007, 10:53
Сообщение #7


Гуру
******

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



Цитата(prottoss @ Oct 4 2007, 16:43) *
Вы считаете что тип unsinged short int будет иметь разное количество бит для AVR и

В стандарте Си нет жестко заданной разрядности типов данных. Есть только ограничения типа char>=short>=int>=long. Ограничения на разрядность данных описаны в хидере limits.h в виде INT_MIN, INT_MAX, LONG_MIN, LONG_MAX и т.п. Так что для разных CPU/MCU разрядность схожих типов данных может быть тоже различной.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 11:05
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(rezident @ Oct 4 2007, 18:53) *
В стандарте Си нет жестко заданной разрядности типов данных. Есть только ограничения типа char>=short>=int>=long. Ограничения на разрядность данных описаны в хидере limits.h в виде INT_MIN, INT_MAX, LONG_MIN, LONG_MAX и т.п. Так что для разных CPU/MCU разрядность схожих типов данных может быть тоже различной.
Тогда назовите хотя бы одну платформу или хотя бы один современный компилятор, в которой

char не равно 8 бит

short int не равно 16 бит

long int не равно 32 бит

long long int не равно 64 бит



"просто" int я в учет не беру, потому что тип этот на самом деле с "плавающей" разрядностью от платформы к платформе


--------------------
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 4 2007, 11:36
Сообщение #9


Adept
******

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



Цитата(prottoss @ Oct 4 2007, 18:05) *
Тогда назовите хотя бы одну платформу или хотя бы один современный компилятор, в которой

char не равно 8 бит

TMS320F28xx. 16 бит.

Дело не том, старые или новые платформы. Вот TMS вполне новый. Дело в принципе. Завтра может появиться еще платформа, у которой типы будут иметь "непривычную" разрядность. Стандарт регламентирует правила, все обязаны их соблюдать, для того правила и придуманы. Если кто-то их не соблюдает, он сам себе злобный буратина.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 4 2007, 12:03
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(dxp @ Oct 4 2007, 19:36) *
TMS320F28xx. 16 бит.
А что за компилятор?


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Алекс   Не нашел .h файл в IAR с описанием uint8_t   Oct 3 2007, 19:55
- - Сергей Борщ   Цитата(_Алекс @ Oct 3 2007, 22:55) Похоже...   Oct 3 2007, 20:07
- - rezident   Можно и самому создать хидер с типами, в чем пробл...   Oct 3 2007, 21:11
|||- - rezident   Цитата(prottoss @ Oct 4 2007, 17:05) Тогд...   Oct 4 2007, 11:23
||||- - prottoss   Цитата(rezident @ Oct 4 2007, 19:23) В Re...   Oct 4 2007, 11:35
|||- - rezident   Цитата(prottoss @ Oct 4 2007, 18:03) А чт...   Oct 4 2007, 12:45
||- - alexander55   Стандарт ANSI/ISO C Standart char 8 unsigned char ...   Oct 4 2007, 11:17
|||- - prottoss   Цитата(alexander55 @ Oct 4 2007, 19:17) Н...   Oct 4 2007, 11:23
||- - dxp   Цитата(rezident @ Oct 4 2007, 17:53) char...   Oct 4 2007, 11:33
||- - rezident   Цитата(dxp @ Oct 4 2007, 17:33) Чуть-чуть...   Oct 4 2007, 11:51
|- - zltigo   Цитата(prottoss @ Oct 4 2007, 13:29) он д...   Oct 4 2007, 11:27
- - _Алекс   Мне кажется лучше пользоваться готовыми встроенным...   Oct 4 2007, 04:14
|- - Сергей Борщ   Цитата(_Алекс @ Oct 4 2007, 07:14) Исполь...   Oct 4 2007, 10:15
|- - _Алекс   Цитата(Сергей Борщ @ Oct 4 2007, 13:15) Я...   Oct 4 2007, 17:34
|- - rezident   Цитата(_Алекс @ Oct 4 2007, 23:34) Если с...   Oct 4 2007, 18:10
|- - IgorKossak   Цитата(_Алекс @ Oct 4 2007, 20:34) Один м...   Oct 5 2007, 07:15
- - prottoss   Хорошо, признаю, был не прав Но мне так и не...   Oct 4 2007, 12:57
|- - IgorKossak   Цитата(prottoss @ Oct 4 2007, 15:57) Но м...   Oct 4 2007, 13:02
||- - prottoss   Цитата(IgorKossak @ Oct 4 2007, 21:02) Да...   Oct 4 2007, 13:09
||- - zltigo   Цитата(prottoss @ Oct 4 2007, 16:09) Я то...   Oct 4 2007, 13:30
|- - dxp   Цитата(prottoss @ Oct 4 2007, 19:57) Но м...   Oct 4 2007, 13:20
|- - prottoss   Цитата(dxp @ Oct 4 2007, 21:20) В данном ...   Oct 4 2007, 13:40
|- - Сергей Борщ   Цитата(prottoss @ Oct 4 2007, 16:40) а dd...   Oct 4 2007, 14:10
|- - prottoss   Цитата(Сергей Борщ @ Oct 4 2007, 22:10) c...   Oct 4 2007, 14:18
- - mdmitry   Если не изменяет память, то char на VAX 32 бита. ...   Oct 4 2007, 19:26
- - alexander55   Цитата(mdmitry @ Oct 4 2007, 23:26) Если ...   Oct 5 2007, 05:07


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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 04:30
Рейтинг@Mail.ru


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