我在Windows安装的标准stdint.h头文件中遇到了一些整型文字。这些文字具有以下形式的后缀:
i8、ui8、i16、ui16、i32、ui32、i64、ui64。
我以前遇到过i64形式的后缀,但从未遇到过其他形式的后缀。我很好奇这些扩展的文档记录在哪里。我花了一些时间浏览Microsoft文档和其他文档,但找不到它们。
这完全是出于好奇心。我很清楚后缀是什么意思。如果有人有文档的链接,请分享参考资料,我将不胜感激。
提前感谢!
发布于 2018-04-10 04:12:07
如果这些源于微软的固有文字后缀由于弃用或其他原因而被删除,那么您可以通过用户定义的文字C++11:http://en.cppReference.com/w/cpp/language/user_literal编写您自己的每个后缀的精确替换
例如:
constexpr uint16_t
operator"" ui16 ( uint16_t literal_ )
noexcept
{
return literal_;
}
发布于 2015-11-13 02:11:12
i64和ui64在较早的VC++版本中记录在"C++整数常量“下,例如https://msdn.microsoft.com/en-us/library/00a1awxf(v=vs.120).aspx。它们仍然记录在最新的VC++ 2015中,但明确建议不要使用微软特定的且不可移植的https://msdn.microsoft.com/en-us/library/c70dax92.aspx。
若要指定64位整数类型,请使用LL或ll后缀。i64后缀仍然受支持,但应该避免使用,因为它是特定于微软的,并且不可移植。
我认为其他的根本没有文档记录,而且使用它们可能也不是一个好主意。
https://stackoverflow.com/questions/33659846
复制相似问题