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

 
 
> char vs uint8_t, Что используете для определения строк?
ViKo
сообщение Dec 24 2014, 10:56
Сообщение #1


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

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



Задавал тип uint8_t для строк. Надоело. Показалось малоинформативным. Решил писать char. Теперь при использовании старых функций выскакивают варнинги о несоответствии типов. Надо выбрать что-то одно. Что посоветуете?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Dec 24 2014, 22:39
Сообщение #2


Гуру
******

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



Естественно char. Строка состоит из символов, char хранит символ. И это единственное, для чего использую char - именно когда надо хранить символ (строку символов). Когда нужен байт - использую (u)int(_fast)8_t, а когда нужен указатель на область памяти, в которой может быть что угодно (для передачи, приема, побайтовой отладочной распечатки) - void (const) *, использую неявное приведение любого указателя к void (const) * и уже внутри соотвествующей функции привожу к указателю на байт:
Код
template <typename T>
void dump(T const & data)
{
    dump(&data, sizeof(T));
}
void dump(void const * from, size_t size)
{
    auto pSrc = (uint8_t const * )from;
    .....
}


void test()
{
    struct t1
    {
     ......
    } Data;

    dump(Data);
}


Предупреждений нет.


--------------------
На любой вопрос даю любой ответ
"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
AHTOXA
сообщение Dec 25 2014, 13:04
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Сергей Борщ @ Dec 25 2014, 03:39) *
Код
void dump(void const * from, size_t size)
{
    auto pSrc = (uint8_t const * )from;
    .....
}

Ну, если плюсы, то лучше наверное так:
Код
auto pSrc = reinterpret_cast<(uint8_t const * )>(from).

?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


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


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