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);

两人无动于衷。

byte vs char vs int Types

自 C99 以来,C 标准已经定义了int8_t。将其用于 8 位类型,或uint8_t用于无符号模拟。

但是,在结构中使用此类类型时要小心,不能保证相邻成员在内存中是连续的。不过,您可以使用数组。

只要 C 中的值类型是"整数",来回转换它应该没有问题。