Tag: ansi c

用于代码的元语言为ANSI-C和C#Structs生成打包的结构

我正在尝试找到一种“元语言”,可用于定义结构和获取/设置成员的代码。 问题在于结构已经存在于代码中,并且这种“元语言”将用作原始手工编码结构的逐位替换,以允许生成描述结构的头部。 关键是这些结构被用作C#应用程序和嵌入式设备之间的协议的一部分(不是基于Linux,认为更小,更像PIC或CM0那样受限制。)元语言将充当 结构成员的文档 为get / set操作生成C#结构和实现 生成打包的ANSI-C结构和get / set函数 元语言需要支持 枚举定义(指定大小 – 即uint16_t,uint8_t或更小的多位枚举) 位数组(指定大小 – 即48位数组打包成6个字节) 位结构/枚举数组(指定大小 – 即48位索引的2位结构为12个字节) 字节序和位序的规范, 生成二进制结构,可以通过生成的ANSI-C代码或C-sharp代码直接读取,以便通过网络发送。 收到数据时对数据进行有限的validation也是很好的。 到目前为止,我已经看过了 BSON 蚀刻 Hessian Avro 冰 MessagePack 协议缓冲区 节约 所有这些都非常适合文档和构建新协议,但是试图保持与现有协议的兼容性,并且由于数据封送中固有的类型编码而导致这些协议不足。 我还查看了ASN.1的ECN编码,但这似乎太难以理解,导致文档出现问题。 我从C结构看了Generating C#结构,但那里没有一个好的选择。 有什么建议?