byte vs char vs int 类型
byte vs char vs int Types
我有一些基本问题。
在 C 中没有 byte
类型,所以我将其定义为 unsigned char
以将缓冲区保存到我需要读取和处理的系统文件。
我的 C 程序现在需要使用具有 byte
内置类型但定义为 'unsigned int'.
的 C#
这会不会导致在两个系统之间来回转换时出现任何问题?
我认为无论使用什么 "word" 底层存储都保持不变,对吧。所以做一些像
//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 中的值类型是 'int' 数字,来回转换应该没有问题。
我有一些基本问题。
在 C 中没有 byte
类型,所以我将其定义为 unsigned char
以将缓冲区保存到我需要读取和处理的系统文件。
我的 C 程序现在需要使用具有 byte
内置类型但定义为 'unsigned int'.
这会不会导致在两个系统之间来回转换时出现任何问题? 我认为无论使用什么 "word" 底层存储都保持不变,对吧。所以做一些像
//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 中的值类型是 'int' 数字,来回转换应该没有问题。