相关疑难解决方法(0)

C++ wchar_t和wstrings有什么"错误"?宽角色有哪些替代方案?

我见过C++社区中的很多人(特别是freenode上的## c ++)对windows api 的使用wstrings和使用感到不满wchar_t.究竟是什么"错误"有wchar_twstring,如果我要支持国际化,有一些什么替代宽字符?

c++ unicode winapi internationalization wstring

81
推荐指数
2
解决办法
3万
查看次数

如果我们给变量a = 123第一个字节赋值123但是如果我们给a = 1234那么其他值就会到来

当我这样给予时:

int main()
{
    int a =123;
    char *p =(char*)&a;
    printf("%d\n",*p);
    ++p;
    printf("%d\n",*p);
    ++p;
    printf("%d\n",*p);
    ++p;
    printf("%d\n",*p);
}
Run Code Online (Sandbox Code Playgroud)

我有输出像

123
0
0
0
Run Code Online (Sandbox Code Playgroud)

但我们这样给了:

int main()
{
    int a =1234;
    char *p =(char*)&a;
    printf("%d\n",*p);
    ++p;
    printf("%d\n",*p);
    ++p;
    printf("%d\n",*p);
    ++p;
    printf("%d\n",*p);
}
Run Code Online (Sandbox Code Playgroud)

我输出为

-46
4
0
0
Run Code Online (Sandbox Code Playgroud)

我对系统如何将值(123/1234)存储在4个字节的变量a中感到困惑.如果它小于127,则第一个字节占据我们作为输入的值(iw 123).

但是如果该值大于127,则变量a的第一个和第二个字节存储不同的值.请解释它是如何工作的?

c memory int

0
推荐指数
1
解决办法
92
查看次数

标签 统计

c ×1

c++ ×1

int ×1

internationalization ×1

memory ×1

unicode ×1

winapi ×1

wstring ×1