我有一点基本问题。
在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);
两者之间无动于衷。
答案 0 :(得分:1)
自C99以来,C标准已定义int8_t
。将其用于8位类型,或uint8_t
用于无符号模拟。
在结构中使用这种类型时要小心,但不能保证相邻成员在内存中是连续的。你可以使用数组。
答案 1 :(得分:0)
只要C中的valuetype是' int' -number,就可以来回摆放它。