字符到无符号字符

标签 c char

我有一个带字段的缓冲区结构

    char inc_factor;

这是字符数组中要递增的字节数。问题是它必须能够保存最大 255 的值。显然,最简单的解决方案是将其更改为 unsigned char,但我无法更改提供的结构定义。函数:

    Buffer * b_create(short init_capacity, char inc_factor, char o_mode)

接收这些参数并返回一个指向缓冲区的指针。我想知道如何才能将数字 255 放入带符号的字符中。

最佳答案

可以转换类型:

unsigned char n = inc_factor;

有符号到无符号的转换定义明确,可以满足您的需求,因为所有三种 char 类型都需要具有相同的宽度。

您可能需要在调用端(或在您的结构中存储char时)小心并执行类似f(n - UCHAR_MAX ) 左右(同样,如果这是负数并且 char 是无符号的,一切都很好)。

关于字符到无符号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18837206/

相关文章:

c - 如何只从字符串中提取数字?

.net - 字符串类型 .NET 与 char 数组

java - Collections.Frequency() 方法输出为零?

c - 我怎样才能将每个/proc/net/tcp 条目匹配到每个打开的套接字?

使用 gcc 编译时关闭程序

c++ - 如何使用 fgets 获取整行

c# - 递归,返回后带有 char 数组的 C#

c - 直接将数字分配给 char 和一点算术

java - "line.separator"的实际值是多少?

c - 在不使用宏的情况下简化和减少代码量