byte vs char vs int Types

时间:2015-01-06 08:21:39

标签: c# c

我有一点基本问题。 在C中没有byte类型,因此我将其定义为unsigned char以将缓冲区保存到我需要读取和处理的系统文件中。 我的C程序现在需要使用C#,它具有byte内置类型,但定义为'unsigned int'。

在两个系统之间来回转换是否会引起任何问题? 我认为无论使用什么“字”,底层存储都保持不变,对吧。所以做一些像

这样的事情
//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);

两者之间无动于衷。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

只要C中的valuetype是' int' -number,就可以来回摆放它。