gpt4 book ai didi

c++ - 设置 VS 调试器的字节顺序

转载 作者:太空狗 更新时间:2023-10-29 20:41:27 27 4
gpt4 key购买 nike

我正在使用 VS 2012 和 C++ 编程。我有一个宽字符串

wchar_t *str = L"Hello world". 

从技术上讲,我是从文件中读取字符串的,但我不知道这是否有所不同。当我在内存窗口中查看 str 时,它看起来像这样:

00 48 00 65 00 6c 00 6c 00 6f 00 2c 00 20 00 77 00 6f 00 72 00 6c 00 64 00 21 00

如您所见,字符串以大端方式存储在内存中。

当我将鼠标悬停在我得到的字符串上时:

L"䠀攀氀氀漀Ⰰ 眀漀爀氀搀℀"

在我反转 str 的字节顺序后,内存看起来像:

48 00 65 00 6c 00 6c 00 6f 00 2c 00 20 00 77 00 6f 00 72 00 6c 00 64 00 21 00 00

悬停看起来像:

L"Hello, world!"

似乎调试器默认以 little-endian 显示 UTF-16。我的程序读取大端文件,因此不断反转所有字符串的字节序以调试它们非常繁琐。有什么方法可以更改调试器显示的字节序?

除了调试目的,我可以在大端进行所有处理。

最佳答案

不仅仅是调试器。 Visual Studio 的 wchar_t 函数与主机一样是小端。当您想要处理数据时,无论如何都需要将字符串字节序反转为小端字节序。

即使您将字符串输出到具有不同字节顺序的文件中,也值得进行此更改。字符串被定义为字节序列,无论如何,将字节顺序应用于字符串看起来很奇怪。

关于c++ - 设置 VS 调试器的字节顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21284192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com