Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

BYTE, Byte и byte - в чем отличие?

490
15 сентября 2007 года
frid-karatel
357 / / 15.09.2007
В чем отличие этих типов данных?
8.9K
15 сентября 2007 года
Yan Tsys
23 / / 07.01.2005
По ситуации... либо различные языки либо библиотеки...
Byte стандартный тип С++ который используется в Builder
BYTE скорее всего нужна для функций WIN API

Если не выпендрится какой-нибудь производитель то беззнаковое восьмибитное целое число... (т.е. один байт :) )

Везде одно и то же,
по крайней мере в wtypes.h
typedef byte BYTE;
а в windef.h
typedef unsigned char BYTE;

Принято использовать тот же тип который ты нашел в описании функции...
490
16 сентября 2007 года
frid-karatel
357 / / 15.09.2007
Т.е. можно использовать и byte, и BYTE?

PS: Дело в чем - есть кусочек кода на DELPHI, который мне надо перевести в C++ Builder. Так вот, ввиду того, что в DELPHI нет чувствительность к регистру, а в C++ Builder есть, к тому же это совсем разные языки программирования, то как же перевести DELPHI-ную byte? :)
30K
16 сентября 2007 года
Mmonstr
9 / / 14.09.2007
да просто напиши typedef unsigned char BYTE
или typedef unsigned char _BYTE
(дабы не вступать в конфликт с другими дефинициями, которые возможно присутствуют в стандартных *.h-файлах), потому что дельфи байт понимает именно так,
и пройдись заменой в текстовом редакторе Byte, byte и BYTE на _BYTE

способ быть может и не универсальный, но зато быстрый + практичный
490
16 сентября 2007 года
frid-karatel
357 / / 15.09.2007
то есть получается, что делфийский byte - это unsigned char на си?
30K
16 сентября 2007 года
Mmonstr
9 / / 14.09.2007
Это зависит от реализации по-моему. Может случиться что char будет в кодировке Unicode, тогда размер char'a будет 2 байта. но если ты не пользуешься юникодом, и используешь обычные компиляторы, а не экзотику Ansi-стандартов, то тебе в это особо вникать не надо. Просто в стандарте Си/Си++ задекларирована свобода от ограничений конкретной реализации. Так, разрядность типа int определяется особенностями компилера под конкретную платформу, в MS-DOS он был 16 разрядным, в Win32 - 32. То же касается и других втроенных типов, в том числе и char.

На Билдере при обычных условиях unsigned char - действительно аналог Byte из Delphi.
490
16 сентября 2007 года
frid-karatel
357 / / 15.09.2007
ок, спасибо за информацию ;)
8.9K
16 сентября 2007 года
Yan Tsys
23 / / 07.01.2005
Builder написан фирмой Борланд путем изменения исходников Delphi так что если сомневаешься попробуй скомпилировать, очень многие типы поддерживаются правда их названия иногда немного изменены...


Цитата:
Mmonstr: да просто напиши typedef unsigned char BYTE



Mmonstr зачем повторять то что уже написано в windef.h ? :D

3
16 сентября 2007 года
Green
4.8K / / 20.01.2000
Цитата: Yan Tsys

Byte стандартный тип С++ который используется в Builder


Нет такого типа в стандарте С++.

240
17 сентября 2007 года
aks
2.5K / / 14.07.2006
frid-karatel, ты и сюда с этим вопросом пришел? Ну вродеж все подробно обсудили =)))


Цитата: Yan Tsys

Byte стандартный тип С++ который используется в Builder


Ага, нету в С++ такого стандартного типа.




Цитата: Mmonstr
Это зависит от реализации по-моему. Может случиться что char будет в кодировке Unicode, тогда размер char'a будет 2 байта.


char - у вобще пофиг на кодировки. А для юникода вполне стандартный тип wchar_t, а не char.

490
17 сентября 2007 года
frid-karatel
357 / / 15.09.2007
чтобы быть умным :) а сюда случайно - искал кое-что, да набрел ))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог