Просмотр 1ого и 2ого байта 2х байтовой переменной
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Захотелось просмотреть содержимое 1ого и 2ого байта 2х байтовой переменной. Пишу код:
выводит:
Первый байт равен g
Второй байт равен +
явно не то что надо. думаю ошибка в строке
byte = ( __int8* )&i;
по моим расчётам в byte должен занестись адрес первого байта переменной i, так ли это?Нашёл в чём проблема. Оказывается тип
__int8
на самом деле есть типchar
, поэтому выводятся символы.Внутри
char
можно хранить все, что угодно, в пределах одного байта.Во-первых, можно сделать так:
А ещё можно и вот так поразвлекаться:
Фокус в том, что в объединении (union) все данные располагаются с одного адреса (т.е. разделяют одну и ту же область памяти, размер которой равен длине самого длинного типа). Поэтому к этой области памяти можно обратиться как к значению типа, указанного в аргументе шаблона, так и как к массиву байт (ака unsigned char).
Результат, выводимый на терминал методом
dump_it()
, будет зависеть от используемой платформы.Спасибо!