你通常在 C++ 上使用什么 int 值,'255' 和十六进制值,'0xff'?
What do you usually use int value, '255' and hexadecimal value, '0xff' on c++?
是否存在性能问题或任何其他原因?
使用其中一个绝对没有性能优势,但请注意,使用十六进制文字意味着隐含的 type 可以包括 unsigned
整数类型,(cf. decimal literals which can't)并且可以产生令人惊讶的效果:
void foo(const unsigned&)
{
// pay me a bonus
}
void foo(const long&)
{
// reformat my hard disk
}
int main()
{
foo(0xffffffff); // thankfully unsigned on a platform with 32 bit int.
}
参见 http://en.cppreference.com/w/cpp/language/integer_literal,包括该页底部的 link 到 C。
是否存在性能问题或任何其他原因?
使用其中一个绝对没有性能优势,但请注意,使用十六进制文字意味着隐含的 type 可以包括 unsigned
整数类型,(cf. decimal literals which can't)并且可以产生令人惊讶的效果:
void foo(const unsigned&)
{
// pay me a bonus
}
void foo(const long&)
{
// reformat my hard disk
}
int main()
{
foo(0xffffffff); // thankfully unsigned on a platform with 32 bit int.
}
参见 http://en.cppreference.com/w/cpp/language/integer_literal,包括该页底部的 link 到 C。