是否隐式转换为size_t



我想知道-当我们用某个值初始化无符号size_t时,C++是否执行隐式强制转换?像这样:

size_t value = 100;

在值中添加"u"文字以防止这种强制转换,像这样有意义吗?

size_t value = 100u;

当我们用一些价值像这样:

size_t value = 100;

是。std::size_t是一个(整数的别名(类型。整数类型可以隐式转换为所有其他整数类型。

在值中添加'u'文字以防止这种强制转换有意义吗?

由于std::size_t不一定(也不典型(是unsigned int,因此仍然可能存在带有u文字后缀的隐式转换。它可以是例如unsigned long intunsigned long long int。有一个为std::size_t别名添加整数文本的标准建议,但目前还没有。

在本例中,使用匹配的文字并不重要,只要文字的类型可以表示有问题的值,并且文字值不超过初始化类型的界限。即使是最小的整数类型也可以表示100。选择在很大程度上取决于品味。


注意;隐式铸造;在术语上是矛盾的。强制转换是一种显式转换。

相关内容

  • 没有找到相关文章

最新更新