如何使用unsigned char *将结构从C#传递到C ++

如题所述

struct fangfa
{
public byte[] id; //数组,C++中unsigned char等价于byte类型,即8位无符号
public bool type;
public uint sum;
}

解释:
1. C#中结构体成员是有访问权限限定符的,默认为private,要想在外面访问,故都写成public。
(其实C++中也有,默认为public而已)
2. C#和C++中结构体成员在定义时均不允许赋初值。故数组定义时没有实例化。
3. C#中数组与C++的差别比较大,是引用类型,而引用类型是要实例化的。即结构体成员中的id相当于C++中指向数组的一个指针,要用new来分配数组的真正存储空间,故使用此结构体的语句示例如下:

fangfa f;
f.type = true;
f.sum = 100;
f.id = new byte[10]; //数组中有10个元素
f.id[0] = 1;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-26
用%u输出就可以了这个是适合unsignedint的用来输出unsignedchar也是一样可以的。
相似回答