Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2021, 08:43   #1
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 78
По умолчанию Как избавиться от warn C4244

Добрый день.

Есть код:
Код:
int x = 0;
size_t y = 0; 
 
x = (int)y;
При компиляции для 64 я получаю warning C4244.

Существует ли способ избавиться от warning не изменяя типы переменных?

Аналогичная проблема с long to void* и т.п.

Спасибо.

Последний раз редактировалось ezus; 06.06.2021 в 08:49.
ezus вне форума Ответить с цитированием
Старый 06.06.2021, 09:40   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от ezus Посмотреть сообщение
При компиляции для 64 я получаю warning C4244.
Точно?
У меня вот ваш код не генерит никаких warnings.

Цитата:
Сообщение от ezus Посмотреть сообщение
Существует ли способ избавиться от warning не изменяя типы переменных?
Делать typecast, что собственно у вас и сделано. Только лучше так не делать.

Цитата:
Сообщение от ezus Посмотреть сообщение
long to void*
А это вообще работать не будет. Вернее когда потом вернете обратно к указателю значение будет неправильным.
waleri вне форума Ответить с цитированием
Старый 06.06.2021, 10:57   #3
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 78
По умолчанию

Спасибо.
Цитата:
Сообщение от waleri Посмотреть сообщение
Точно?
А это вообще работать не будет. Вернее когда потом вернете обратно к указателю значение будет неправильным.
Это понятно.
Просто числа хранятся в CPtrArray.
ezus вне форума Ответить с цитированием
Старый 06.06.2021, 16:46   #4
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Цитата:
Сообщение от ezus Посмотреть сообщение
int x = 0;
size_t y = 0;
int - тип со знаком
size_t - тип без знака
Алексей1153 вне форума Ответить с цитированием
Старый 06.06.2021, 19:26   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от ezus Посмотреть сообщение
Просто числа хранятся в CPtrArray.
Посмотрите в сторону CDWordArray.

А еще лучше - используйте STL библиотеку.
waleri вне форума Ответить с цитированием
Старый 08.06.2021, 09:23   #6
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
int - тип со знаком
size_t - тип без знака
Ну и что?
Я же сообщил через (int), что я помню об этом и согласен с усечением.
ezus вне форума Ответить с цитированием
Старый 08.06.2021, 09:24   #7
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 78
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Посмотрите в сторону CDWordArray.

А еще лучше - используйте STL библиотеку.
CPtrArray - это не мой выбор.
ezus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как избавиться от винлокера Jurijus123 Безопасность, Шифрование 8 17.03.2015 21:51
Как избавиться от мерцания datgen Windows Forms 1 16.01.2014 16:19
Как избавиться от #Н/Д? kachorro Microsoft Office Excel 10 26.04.2012 06:38
как избавиться от 1.#INF ? Razza Общие вопросы C/C++ 2 19.12.2010 17:45
Как избавиться от (Error 91) r0tten Microsoft Office Excel 6 26.01.2010 06:47