static_cast‹unsigned› против static_cast‹unsigned int›

Я новичок в C++, поэтому, пожалуйста, отнеситесь к этому с осторожностью. Я использовал resharper для преобразования некоторого кода из приведения в стиле c в приведение в стиле C++.

Этот код здесь:

(unsigned int)(ch - start) <= (unsigned int)(end - start);

Был изменен на

static_cast<unsigned>(ch - start) <= static_cast<unsigned>(end - start);

вместо:

static_cast<unsigned int>(ch - start) <= static_cast<unsigned int>(end - start);

Есть ли ЛЮБАЯ разница? И еще, есть ли отличия в производительности? Это называется миллиарды раз.


person ABCD Man    schedule 13.09.2020    source источник
comment
Нет никакой разницы. Эти два означают одно и то же. По соглашению часть int часто опускается.   -  person Ron    schedule 13.09.2020
comment
@Ron А как насчет производительности?   -  person ABCD Man    schedule 13.09.2020
comment
unsigned int и unsigned сами по себе означают одно и то же. В случае unsigned сам по себе подразумевается int. Разницы в производительности нет.   -  person Eljay    schedule 13.09.2020
comment
А, ну ладно. Понял, спасибо!   -  person ABCD Man    schedule 13.09.2020


Ответы (1)


Есть ли ЛЮБАЯ разница?

unsigned int на 4 символа больше, чем unsigned. Других отличий нет.

И еще, есть ли отличия в производительности?

No.

person eerorika    schedule 13.09.2020