Ошибки, баги, вопросы - страница 2761
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
так же работает без предупреждений?
потому что есть соответствующая сигнатура ArrayInitialize
а для беззнакового uchar по неизвестной причине не сделали ArrayInitialize()
Дело не в сигнатуре или её отсутствии. Дело в том что 4 байта преобразовывается в 1, информация может теоретически потеряться, об этом компилятор и предупреждает.
Попробуйте ArrayInitialize(c, (char)10000);
тоже будет предупреждение
Дело не в сигнатуре или её отсутствии. Дело в том что 4 байта преобразовывается в 1, информация может теоретически потеряться, об этом компилятор и предупреждает.
Попробуйте ArrayInitialize(c, (char)10000);
тоже будет предупреждение
да понятно это все и было изначально
тут вопрос в другом, вот где так уж нужен char?
а uchar я использую в StringToCharArray() и а CryptEncode() и если пройтись по справке еще найдутся
так вот почему проинициализировать массив char я могу используя ArrayInitialize ,а а вот uchar не могу
ладно холивар знатный получился, сомневаюсь что что то изменится ;)
PS: 0xFF = 255 (1 байт )
yes it’s clear that was all from the beginning
here the question is different, this is where char is really needed?
I use uchar in StringToCharArray () and CryptEncode (), and if you go through the help there are still
so that's why i can initialize a char array using ArrayInitialize , but uchar can't
ok, the noble holivar turned out, I doubt that something will change;)
PS: 0xFF = 255 (1 byte)
да понятно это все и было изначально
тут вопрос в другом, вот где так уж нужен char?
а uchar я использую в StringToCharArray() и а CryptEncode() и если пройтись по справке еще найдутся
так вот почему проинициализировать массив char я могу используя ArrayInitialize ,а а вот uchar не могу
ладно холивар знатный получился, сомневаюсь что что то изменится ;)
PS: 0xFF = 255 (1 байт )
Не понял почему вы не можете. с uchar всё также как с char работает.
Вы изначально же спрашивали почему предупреждение, потому что 4 байта в 1. А значение 255 не важно совсем. и 0 и единица могут быть и 1 и 2 и 4 и 8 байт же)
Alain Verleyen:
проверил:
OK, работает без предупреждений компилятора
Спасибо
проверил:
OK, работает без предупреждений компилятора
Спасибо
Вы будете смеяться, но даже так работает без предупреждений
Вы будете смеяться, но даже так работает без предупреждений
вы тоже будете смеятся но это путь в UB и способ обрести сложноловимый баг на следующих билдах :-)
int foo=-1;
uchar bar=(uchar)foo; // чему должен быть равен bar ?
проверил:
OK, работает без предупреждений компилятора
Спасибо
Зачем нужен вызов ArrayInitialize в этой случае? Почему не написать просто uchar uc[16] = {0xFF}; ?
ArrayInitialize имеет смысл для динамически распределенных массивов, а тут размер якобы известен в момент описания.
Вы будете смеяться, но даже так работает без предупреждений
не смешно, это не правильная инициализация, которую потом можно самому не понять почему так делал
понятное дело, что старший байт будет обрезан при кастинге к uchar
Зачем нужен вызов ArrayInitialize в этой случае? Почему не написать просто uchar uc[16] = {0xFF}; ?
ArrayInitialize имеет смысл для динамически распределенных массивов, а тут размер якобы известен в момент описания.
не прокатит
распринтуйте, будет первый элемент 255, а остальные 0, 0, 0, ...
OK, работает без предупреждений компилятора
без приведения по-хорошему так
UPD нет, тоже предупреждение, такой литерал имеет тип ushort