Является ли этот static_cast действительным / законным?

0
double diff = static_cast<int64_t>(a- b);

a и b имеют тип int64_t.

Я видел этот код в нашем проекте. Я думаю, что это подозрительно, но я действительно не уверен. Я знаком с static_cast, и я бы не писал такой код.

Является ли этот static_cast действительным/законным? Это полезно?

Теги:
casting
static-cast

2 ответа

0
Лучший ответ

Это действие действительно, но ничего не делает. Я согласен, что это подозрительно. Вы должны внимательно изучить, что должен делать код, и если он будет исправлен, вы можете захотеть переписать его так, чтобы намерение было более четким и чтобы оно не выглядело подозрительным.

1

Если a и b оба являются int64_t, нет никакого смысла в int64_t. Он int64_t результат типа int64_t для ввода int64_t. Было бы так:

int a = 10, b = 5;
double c = (int)(a - b); // the cast is not needed, but also not "harmful"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню