gpt4 book ai didi

c - 将带有锐音符的字符分配给 C int 变量

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:35 25 4
gpt4 key购买 nike

给定此 C 指令:

int c = 'é';

在运行时,执行此指令后,如果我查看 c 的值,十六进制值为 0xffffffe9 而我期望 0x000000e9 而不是...

你能解释一下为什么它会这样吗?我应该怎么做才能得到预期的结果?

请注意,如果我改为使用此指令:

int c = 0xE9;

我得到 0x000000e9 作为 c 的值。

谢谢你帮助我。

最佳答案

char 已在您的平台上签名。大于 127 的非 ASCII 字符常量实际上是负 int 值。尝试将非 ASCII 字符常量转换为 (unsigned char) 或者如果您使用 gccclang,请添加 -funsigned-char 作为命令行选项。

在您的源文件中使用非 ASCII 字符会引发问题。根据您的文本编辑器使用的编码和编译器的预期,您最终可能会遇到比此处所经历的更令人惊讶的行为。

最好完全避免它们...... Tant pis.

关于c - 将带有锐音符的字符分配给 C int 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29473408/

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