Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何确定宽字符串文字的结尾?_C++_C_String_Unicode_Character Encoding - Fatal编程技术网

C++ 如何确定宽字符串文字的结尾?

C++ 如何确定宽字符串文字的结尾?,c++,c,string,unicode,character-encoding,C++,C,String,Unicode,Character Encoding,我知道这个问题与编译器有关。所以我想要一个可靠的方法来确定 例如: const wchar_t str[] = L"飞流直下三千尺"; 我如何知道str是小端还是大端 是否有编译器保证宽字符串文字的endianness与目标体系结构的endianness相同?没有编译器保证wchar\u t甚至具有endianness(或者是Unicode),这不就是检测机器是否为little endian吗?如果是这样的话,就有一百万个重复。不能保证endianness是处理器的endianness。@xm

我知道这个问题与编译器有关。所以我想要一个可靠的方法来确定

例如:

const wchar_t str[] = L"飞流直下三千尺";
我如何知道
str
是小端还是大端


是否有编译器保证宽字符串文字的endianness与目标体系结构的endianness相同?

没有编译器保证
wchar\u t
甚至具有endianness(或者是Unicode),这不就是检测机器是否为little endian吗?如果是这样的话,就有一百万个重复。不能保证endianness是处理器的endianness。@xmlmx不能保证例如
int
的endianness也是处理器的endianness。检测
wchar\u t
的尾端的方法与检测
int
的尾端的方法相同,只是将
int
替换为
wchar\u t
@xmllmx,同样,它与
int
没有任何区别。我不是说检测
int
的尾端,假设
wchar\u t
的存储方式相同,我是说你可以检测
wchar\u t
的尾端,就像检测
int
的尾端一样;这是一个数组。它的元素可以是大端或小端,因此问题更恰当地表述为“如何确定
wchar\u t
的端度”。