byte vs char vs int Types
本文关键字:vs Types int char byte | 更新日期: 2023-09-27 18:36:35
我有一个小的基本问题。在 C 中没有byte
类型,所以我将其定义为unsigned char
以将缓冲区保存到我需要读取和处理的系统文件中。我的 C 程序现在需要使用具有内置类型但定义为"无符号 int"byte
C#。
在两个系统之间来回转换会导致任何问题吗?我认为无论使用什么"词",底层存储都保持不变,对吧。所以做类似的事情
//C#
//byte[] b=new byte[2];
//b[0]=11;
//b[1]=12;
C
byte b[2];//unsigned char
b[0]=(byte)(11);
b[1]=(byte)(12);
两人无动于衷。
自 C99 以来,C 标准已经定义了int8_t
。将其用于 8 位类型,或uint8_t
用于无符号模拟。
但是,在结构中使用此类类型时要小心,不能保证相邻成员在内存中是连续的。不过,您可以使用数组。
只要 C 中的值类型是"整数",来回转换它应该没有问题。