как удалить «предупреждение об использовании приведения в старом стиле»

#c #casting

#c #Кастинг

Вопрос:

Я хочу удалить ошибку «использование приведения в старом стиле». Пожалуйста, обратите внимание, что файл, который я пишу, является двоичным.

Я получил предупреждение

 int temp;
fileID.write((char *)amp;temp, 1);
  

это не работает

 fileID.write(static_cast<char *>(amp;temp), 1);
  

Комментарии:

1. Какой компилятор вы используете? с GCC вы должны быть в состоянии использовать -Wold-style-cast . Для Visual Studio, я думаю, вы можете сделать это с помощью инструментов анализатора кода, которые они предоставляют, но я понятия не имею.

2. Вам нужно использовать reinterpret_cast вместо static_cast , поскольку типы не связаны.

3. … и вы знаете, что вы записываете только 1 sizeof int байт?