gpt4 book ai didi

c - ruby C 扩展 : character values over 127

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:42 25 4
gpt4 key购买 nike

我正在尝试为 Ruby 创建一个 C 扩展,其中包含一个返回字符串的方法,该字符串有时具有需要在 unsigned char 中的字符值。在 http://github.com/shyouhei/ruby/blob/trunk/README.EXT ,列出的所有用于将 C 字符串转换为 Ruby 字符串的函数都采用带符号的字符。所以我不能这样做:

unsigned char bytes[] = {0xf0, 0xf1, 0xf2};
return rb_str_new(bytes, 3);

我如何创建一个返回这些类型字符串的方法?换句话说,我如何使用返回 "\xff" 的方法进行 C 扩展?

最佳答案

我发现当使用 rb_str_new 时,ruby 会将负字符视为它们的无符号等效字符。因此,您可以将字节数组转换为 char *

unsigned char bytes[] = {0xf0, 0xf1, 0xf2};
return rb_str_new((char *)bytes, 3);

关于c - ruby C 扩展 : character values over 127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2705522/

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