我想用 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 表,其中字母可能取决于区域设置系统的设置。例如,西欧和东欧语言设置很可能在 128
到 255
范围内具有不同的字符。
如果您想使用仅包含一些二进制数据而不是字母的字节,您可能希望使用例如uint8_t
,告诉代码的其他读者您没有将该变量用于字母而是二进制数据。
关于c - 特殊字 rune 字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19549089/