擅长:python、mysql、java
<p>这段代码将C结构中的字段解包,即masterID、period、skipfactor、、u、date、time、num、deviceID、length、mode、settings,将这些字段存储在Python字典中,并将该字典作为调用结果返回。下划线是结构中未使用部分的占位符。在</p>
<p>另请参见:<a href="https://docs.python.org/2/library/struct.html" rel="nofollow">https://docs.python.org/2/library/struct.html</a>,例如,有关格式字符串('!IHHHI8S8S32X32XHI8X'),它告诉解压函数结构的外观。在</p>
<p>语法a,b,c,d=f()意味着函数返回一个在Python中称为元组的东西。通过将一个元组分配给多个变量,它被拆分成它的字段。在</p>
<p>示例:</p>
<pre><code> t = (1, 2, 3, 4)
a, b, c, d = t
# At this point a == 1, b == 2, c == 3, d == 4
</code></pre>
<> P>用C++取代这段代码不应该太难,因为C++的结构与C.很相似,所以最简单的C++配置实现是要返回那个结构。如果您想更靠近Python功能,您的函数可以将Stutt的字段放入C++ STL映射中并返回。格式字符串+链接指向的文档将告诉您结构中的数据类型以及位置。在</p>
<p>注意,unpack的第二个参数保存数据,第一个参数只包含第二个参数的布局(格式)信息,如链接中所述。第二个参数在Python看来似乎是一个字符串,但实际上它是一个C结构。第一个参数告诉Python在该结构中的何处查找内容。在</p>
<p>因此,如果您阅读格式字符串的文档,您可以找到第二个参数(C struct)的布局。但也许你不需要。这取决于函数的调用者。它可能只需要简单的C结构。在</p>
<p>从您添加的注释中我了解到,您的函数中的代码比您显示的要多。结构的字段被分配给类的属性。在</p>
<P>如果你知道C结构(CONFIG)的字段名,那么你可以直接把它们分配给C++类的属性。在</p>
^{pr2}$
<p>我假设config结构的字段名确实是mode、settings、length等,但您必须验证这一点。这个结构的布局可能是在某些C头文件(或文档)中声明的。在</p>