社区
C#
帖子详情
c语言中结构中有数组如何转化为c#表达?
xudu
2004-05-03 03:33:20
如:
typedef struct tagJPEGDQT_16BITS
{
WORD segmentTag; //DQT段标记,必须为0xFFDB
WORD length; //段长度,这里是0x8300
BYTE tableInfo; //量化表信息
WORD table[64]; //量化表(16 bits)<-怎么办?
}JPEGDQT_16BITS;
...全文
102
8
打赏
收藏
c语言中结构中有数组如何转化为c#表达?
如: typedef struct tagJPEGDQT_16BITS { WORD segmentTag; //DQT段标记,必须为0xFFDB WORD length; //段长度,这里是0x8300 BYTE tableInfo; //量化表信息 WORD table[64]; //量化表(16 bits)<-怎么办? }JPEGDQT_16BITS;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xudu
2004-05-10
打赏
举报
回复
谢谢大家热心,我已经自己从msdn找到了该方法。同样还有字节对齐问题(Pack=1),但我还是感谢turnmissile(会翻跟头的导弹)等热心人。
实际上这是我一系列问题中的一个,也是有关结构的问题,怎么把上述结构变量写入文件,一般情况是写byte[],但C#和C++,C/C++中使用文件读写,一般*buffer,我只要取&结构变量地址即可,但C#不同,结构变量是值类型,而数组是引用类型,怎么转化。我现在是参考zdnet上的一片文章,即利用Marshal.PtrToStructure和Marshal.StructureToPtr
来转换结构变量和byte[],但这是一个深拷贝操作,对性能还是要造成一定影响,大家有没有其他方法?
sandsboy
2004-05-07
打赏
举报
回复
public struct JPEGDQT_16BITS
{
ushort segmentTag; //DQT段标记,必须为0xFFDB
ushort length; //段长度,这里是0x8300
byte tableInfo; //量化表信息
ushort table[64]; //量化表(16 bits)<-怎么办?
}
vzxq
2004-05-07
打赏
举报
回复
关注,学习。UP
Brunhild
2004-05-07
打赏
举报
回复
同意turnmissile(会翻跟头的导弹)
turnmissile
2004-05-07
打赏
举报
回复
[ StructLayout( LayoutKind.Sequential )]
typedef struct tagJPEGDQT_16BITS
{
WORD segmentTag; //DQT段标记,必须为0xFFDB
WORD length; //段长度,这里是0x8300
BYTE tableInfo; //量化表信息
[ MarshalAs( UnmanagedType.ByValArray, SizeConst=64 )]
WORD[] table; //量化表(16 bits)<-怎么办?
}JPEGDQT_16BITS;
Brunhild
2004-05-07
打赏
举报
回复
to:sandsboy(沙滩男孩)
你实际上是在结构中定义一个指针,而turnmissile(会翻跟头的导弹),是定义一个可以容纳64个WORD的区域。我想楼主需要的应该是后者
popohei
2004-05-04
打赏
举报
回复
C#中的结构是非引用的类
struct tagJPEGDQT_16BITS
{
WORD segmentTag; //DQT段标记,必须为0xFFDB
WORD length; //段长度,这里是0x8300
BYTE tableInfo; //量化表信息
WORD table[64]; //量化表(16 bits)<-怎么办?
};
xudu
2004-05-04
打赏
举报
回复
关键是C#中没用静态数组,
sizeof(结构名)是否等于各字段长度和,还是要附加一些类信息
C语言
入门基础知识+经典源码案例
表达
能力强:
C语言
可以方便地表示数据
结构
,如
数组
、链表、队列、栈等,并且可以很方便地进行面向过程的程序设计。高效率:
C语言
直接访问内存,以二进制方式进行操作,具有很高的运行效率。可移植性好:
C语言
编写的...
结构
体
数组
,
结构
体指针
遍历
结构
体
数组
的方式也是使用变量i和for循环来遍历:下面是
表达
方法和遍历的方法: #include struct Test { int data; char cdata; }; int main() { struct Test array[2] = { {10,'A'}, //这是第一个元素的...
【考研复习-持续更新】李春葆新编
C语言
习题与解析(错误答案订正+部分习题详细解答)
这是因为在指向二维
数组
的时候总是要经过这样的转换: 指向一维
数组
的指针变量:在
C语言
规定
中
,
数组
名代表
数组
首地址,而且是一个地址常量,所以指针可以直接指向地址(即
数组
)p=a等价于p=a[0]. 指向多维
数组
的...
结构
体的定义与访问(定义普通变量、指针、
数组
)
自定义数据类型 通过数据类型来定义一个一个的变量 , 当需要很多相同类型的变量时有
数组
。基本数据类型在使用时很方便, 但是利用它们来描述现实世界就显得捉襟见肘。例如需要保存一个班学生的信息 ” 姓名 , 年龄 , ...
C提高~
C语言
与内存
C语言
与内存 计算机程序运行的目的 什么是程序? 最直观的
表达
:程序 = 数据 + 算法。对于计算机而言,一个程序就是一堆代码加一堆数据。代码告诉CPU如何加工数据,而数据则是被加工的对象。如,写一个加法程序,...
C#
111,119
社区成员
642,538
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章