msc*_*msc 3 c++ sizeof c++11 multibyte-characters
考虑到我有以下程序来确定多字节字符的大小.
#include<iostream>
int main()
{
std::cout<<"size of multibyte characters : "<<sizeof('ab')<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
我的GCC编译器输出为4.
所以我有以下问题:
sizeof('ab')等于sizeof(int)?Sto*_*ica 13
这是一个所谓的多字符文字,与单个字符对应物不同,它不是类型char,而是类型int(假设支持它).如[lex.ccon]/2中所述,强调我的:
不以u8,u,U或L开头的字符文字是普通字符文字.包含可在执行字符集中表示的单个c-char的普通字符文字具有char类型,其值等于执行字符集中c-char的编码的数值.包含多个c-char的普通字符文字是多字符文字.包含单个c-char 的多字符文字或普通字符文字在执行字符集中无法表示,它是有条件支持的,具有int类型,并具有实现定义的值.
所以你打印sizeof(int),如你所怀疑的那样.