Ну, пробьешь ты головой стену. И что ты будешь делать в соседней камере?
Сейчас пишу примитивный архиватор(лз77).
На вход у меня файл.
void * buf=read(...имя_файла);
Могу ли я перекастоваться void * в char*? и дальше работать с ними как с char-ами?
Фишка в том, что в чаре 4 бита, а вообще говоря файл может быть и 5 бит, соотвественно на 5ом у меня может сломаться.
загружаю я обычно

@темы: C++

Комментарии
17.12.2011 в 22:40

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
В char'е - 4 бита? Это что же за процессорная архитектура такая? :-(
17.12.2011 в 22:44

Ну, пробьешь ты головой стену. И что ты будешь делать в соседней камере?
Flex Ferrum, эм... уговорил. 1 бит. Другой вопрос, архитектура все ровно делит на биты?
17.12.2011 в 22:47

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
Mr.Freedom, ты биты с байтами не путаешь?
17.12.2011 в 22:52

Ну, пробьешь ты головой стену. И что ты будешь делать в соседней камере?
8бит=1байт - брат вдолбил))) Я говору у меня жуткий тупняк. Понял.
17.12.2011 в 22:54

> 8бит=1байт - брат вдолбил)))

И это неправильно. Не всегда 8бит=1байт. У байта другое определение.
17.12.2011 в 22:54

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
«Я говору у меня жуткий тупняк. Понял.»
Тогда вопрос переформулируй, плз. :)
17.12.2011 в 22:58

Ну, пробьешь ты головой стену. И что ты будешь делать в соседней камере?
Trotil, я понимаю что бывают разные архитектуры и тд. Но с точки зрения человека который всегда все путает и жутко тупит это весьма удобная напоминалка)))
Flex Ferrum, мы с воображаемым другом уже дороговорились и пришли к консенсусу) вопрос отпал)
17.12.2011 в 23:00

Mr.Freedom, ок )))
На всякий случай - байт - минимально адресуемая единица памяти. Обычно 8 бит, да.
17.12.2011 в 23:08

Ну, пробьешь ты головой стену. И что ты будешь делать в соседней камере?
Trotil, т.е. в любом случае у меня файл входной разобъется на байты и вообще говоря я могу перекастовать без потерь void* в int64_ (уже правда С++ыми кастами небось).
17.12.2011 в 23:12

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
«и вообще говоря я могу перекастовать без потерь void* в int64_ (уже правда С++ыми кастами небось).»
Всё зависит от того, зачем именно тебе это надо.
17.12.2011 в 23:17

Ну, пробьешь ты головой стену. И что ты будешь делать в соседней камере?
Flex Ferrum, ну это так.. полет фантазии.. по сути не зачем, но теоретически я просто думал что архиватор будет работать быстрее если я с памятью буду обращаться удобными для процессора кусками - например байтами. круто же if(buf1[i]==buf2[j]) - и так я сравнил два байта вместо использования memcmp.
17.12.2011 в 23:23

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
Тогда таки да, тебе void* надо преобразовывать в char*. Собственно, в memcmp делается подобное преобразование.