|
Не нашел .h файл в IAR с описанием uint8_t |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 14)
|
Oct 4 2007, 03:00
|

Познающий...
     
Группа: Свой
Сообщений: 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; и т.д. Таким образом мы вводим новые типы, которые поддаются контролю компилятора.
--------------------
Выбор.
|
|
|
|
|
Oct 4 2007, 10:43
|

Гуру
     
Группа: Свой
Сообщений: 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 для двух вышеназванных платформ будет разной длины?
--------------------
|
|
|
|
|
Oct 4 2007, 11:05
|

Гуру
     
Группа: Свой
Сообщений: 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 я в учет не беру, потому что тип этот на самом деле с "плавающей" разрядностью от платформы к платформе
--------------------
|
|
|
|
|
Oct 4 2007, 11:17
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Стандарт ANSI/ISO C Standart char 8 unsigned char 8 signed char 8 int 16 or32 unsigned int 16 or 32 signed int 16 or 32 short int 16 unsigned short int 16 signed short int 16long int 32 signed long int 32 unsigned long int 32 float 32 double 64 long double 80 Цитата(prottoss @ Oct 4 2007, 15:05)  Тогда назовите хотя бы одну платформу или хотя бы один современный компилятор, в которой
char не равно 8 бит
short int не равно 16 бит
long int не равно 32 бит
long long int не равно 64 бит
"просто" int я в учет не беру, потому что тип этот на самом деле с "плавающей" разрядностью от платформы к платформе Не спорьте, не заводитесь.
Сообщение отредактировал alexander55 - Oct 4 2007, 11:14
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|