c - 特殊字 rune 字

标签 c gcc char literals

我想用 char 文字分配一个 char,但它是一个特殊字符,比如 255 或 13。
我知道我可以用将被转换为 char 的文字 int 分配我的 char:char a = 13;
我也知道 Microsoft 会让我使用 hex code as a char literal : char a = '\xd'

我想知道 gcc 是否也支持这种方法。

最佳答案

写一些类似的东西

char ch = 13;

大部分是可移植的,平台上的值 13 与您的平台上的值相同(这是所有使用 ASCII 字符集的系统,这确实是是当今大多数系统)。

在某些平台上,13 可能有其他含义。但是,无论字符编码系统如何,使用 '\r' 应该始终是可移植的。

使用没有字 rune 字等效项的其他值不可可移植。使用高于 127 的值甚至不太可移植,因为这样您就在 ASCII 表之外,并进入扩展 ASCII 表,其中字母可能取决于区域设置系统的设置。例如,西欧和东欧语言设置很可能在 128255 范围内具有不同的字符。

如果您想使用仅包含一些二进制数据而不是字母的字节,您可能希望使用例如uint8_t,告诉代码的其他读者您没有将该变量用于字母而是二进制数据。

关于c - 特殊字 rune 字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19549089/

相关文章:

c - 用于调试信息的默认链接描述文件

macos - Mac OSX 上的 wcout 问题

c - 如何在字节码虚拟机中使用 libuv

c - 如何从头开始用 C 语言播放声音 (Linux)

windows - Windows 中的 cmake 问题

编译器 : Understanding assembly code generated from small programs

c - C Mandelbrot 程序中的二进制错误导致无效操作数

c - 在 shmget() C 中使用 IPC_CREAT 的数值等价物

将 u_char 转换为 char

c++ - 索引到字符串时输出不正确