【发布时间】:2020-09-13 18:43:01
【问题描述】:
我是 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);
有什么不同吗?而且,有没有性能差异?这被称为 十亿 次。
【问题讨论】:
-
没有任何区别。两者的意思是一样的。按照惯例,
int部分经常被省略。 -
@Ron 性能怎么样?
-
unsigned int和unsigned本身的含义相同。在unsigned本身的情况下,int是隐含的。没有性能差异。 -
啊,好的。明白了,谢谢!