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

 
 
> в чем отличие uint8_t от char?
Метценгерштейн
сообщение Jan 18 2013, 11:14
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



могу ли я всегда использовать uint8_t ? ведь оба беззнаковые и оба 8 бит.
и в программе вывода текста в UART uint8_t работает прекрасно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hamster1979
сообщение Jan 23 2013, 05:30
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 26-03-05
Пользователь №: 3 697



ИМХО - char всегда пишу если подразумевается строка или символ, всякие uint8 и прочая - для хранения данных в опрделенной размерности бит и указания знака, для переносимости проектов на разные целевые платформы.
Go to the top of the page
 
+Quote Post
yes
сообщение Jan 23 2013, 10:19
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



у приличных людей строки это массивы wchar_t уже давно sm.gif

я, например, предпочитаю char, в совсем сложных случаях добавляю signed, unsigned. ну не люблю я uint8_t и остальные типы с того инклуда
разницы никакой

-----

например для 55х тмсов (и наверняка для других странных архитектур) где char 16 бит стока надо переделывать в исходниках, что эта разница значения практически не имеет

Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 23 2013, 11:58
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(yes @ Jan 23 2013, 14:19) *
например для 55х тмсов (и наверняка для других странных архитектур) где char 16 бит стока надо переделывать в исходниках, что эта разница значения практически не имеет

Например что переделывать (конкретно)?
Я как раз-то и агитирую за использование по назначению типа char (только для строк и символов),
а то, что лично вы не используете типы из <stdint.h>, так это лично ваши предпочтения.
Мне очень нравится, к примеру, в небольших циклах использовать в качестве счётчика тип uint_fast8_t - получается оптимально и для кортексов, и для авр8, и для x86.
И переделывать ничего не надо. Если вы ещё не смогли оценить эту возможность - очень жаль.
Ну и насчёт wchar_t, вы тоже слегка преувеличиваете, так например в avr-gcc вообще как класс отсутствуют <wchar.h> и <wctype.h>,
а для работы с winapi TCHAR более уместен. Видите как оно бывает? Я бы сказал что в первую очередь от фреймворка стоит отталкиваться при выборе традиционных для него типов: в Qt одно в BCB другое в VS третье.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
yes
сообщение Jan 23 2013, 17:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



бывает и кроме win и авр-а программирование, не правда ли?

а использовать char или uint8_t - дело вкуса, я никаких претензий к пользователям stdint.h не предьявляю

по поводу архитектур с нестандартными размерами long, short, char и т.п. там кроме этого еще много всего нестандартного. ну и арифметика с указателями - да, ес-сно в ней ошибки
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 23 2013, 17:36
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(yes @ Jan 23 2013, 21:23) *
бывает и кроме win и авр-а программирование, не правда ли?
Несомненно. Полно и 8-ми и 16-ти разрядных архитектур, а сейчас и 64-ёх битники от ARM на подходе, так что всё только начинаетсяsm.gif
Конечно можно найти какие-либо нестандартные фишки при заточке компилятора под ту или иную архитектуру, но 99% программы можно и ИМХО нужно писать с прицелом на повторное использование на различных платформах. Чему и сопутствует <stdint.h>.
Вот и всё что я хотел сказать.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   в чем отличие uint8_t от char?   Jan 18 2013, 11:14
- - demiurg_spb   char по умолчанию знаковый тип, более того его раз...   Jan 18 2013, 11:27
|- - Misile_Inc   char по умолчанию не является ни знаковым, ни безз...   Feb 20 2013, 08:22
|- - ReAl   Цитата(Misile_Inc @ Feb 20 2013, 10:22) И...   Feb 20 2013, 08:43
|- - Misile_Inc   Цитата(ReAl @ Feb 20 2013, 12:43) Ещё там...   Feb 20 2013, 09:18
- - Genadi Zawidowski   Цитата(Метценгерштейн @ Jan 18 2013, 15:1...   Jan 18 2013, 23:49
|- - Xenia   Цитата(Genadi Zawidowski @ Jan 19 2013, 03...   Jan 19 2013, 01:22
|- - Сергей Борщ   QUOTE (Xenia @ Jan 19 2013, 03:22) Много ...   Jan 19 2013, 11:31
- - _Pasha   Самый рекордсмен по кривизне - это тип int Что до...   Jan 23 2013, 17:49
- - Сергей Борщ   Во, вчера нарвался в исходниках v-usb: CODEchar i;...   Jan 28 2013, 15:34
- - Lagman   можно этому верить? Статья на Хабре   Jan 31 2013, 15:05
- - _Pasha   ЦитатаОт типов вроде int16_t, со строгим указанием...   Jan 31 2013, 15:43


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

 


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


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