本文章记录C++11~C++20的新基础类型。
1.整数类型long long
long long
类型是C++11引入的。在C++标准中规定,long long是一个至少为64位的整数类型。可以使用LL和ULL字面量后缀进行初始化。格式化打印时分别用%lld和%llu。
long long x = 12345LL;
unsigned long long y = 45ULL;
2.字符类型
在C++11标准中添加了两种新的字符类型char16_t
和char32_t
,分别对应Unicode字符集中的UTF16和UTF-32编码方法。C++11还提供了3种编码字符和字符串的字面量,它们对应的字面量后缀分别为u8(即UTF-8)
、u(UTF-16)
和U(UTF-32)
。其中u8
在C++11标准中只能作为字符串字面量的前缀,字符的前缀需要C++17。
char a = u8'a'; // C++17标准
char16_t b = u'标';
char32_t c = U'准';char d[] = u8"人之初";
char16_t e[] = u"性本善";
char32_t f[] = U"性相近";
对于UTF-8字符编码,在C++20中引入了char8_t
类型,用来代替char作为UTF-8的字符类型。
详细内容可查阅<<现代C++语言核心特性解析>>,作者是谢丙堃。