Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python字典中将C struct与u8、u16一起使用_Python_C_Dictionary_Struct_User Defined Data Types - Fatal编程技术网

在Python字典中将C struct与u8、u16一起使用

在Python字典中将C struct与u8、u16一起使用,python,c,dictionary,struct,user-defined-data-types,Python,C,Dictionary,Struct,User Defined Data Types,我有一个C结构,如下所示 struct spi_header { u8 SpiCmd :5; u8 channel :1; u8 kac :2; }; 我需要在python中使用它,所以我尝试使用字典,如下所示 spi_header = { 'SpiCmd': , 'channel': , 'kac': } 我尝试为成员分配范围,如'SpiCmd':(0:5) 正在尝试将字节拆分为C结构中指定的范围。但我发现语法错误。我知道是的,因为无法像我尝试的那

我有一个C结构,如下所示

struct spi_header
{
    u8  SpiCmd  :5;
    u8  channel :1;
    u8  kac     :2;
};
我需要在python中使用它,所以我尝试使用字典,如下所示

 spi_header = { 'SpiCmd': , 'channel': , 'kac': }
我尝试为成员分配范围,如
'SpiCmd':(0:5)

正在尝试将字节拆分为C结构中指定的范围。但我发现语法错误。我知道是的,因为无法像我尝试的那样指定范围(5、1、2)。那么,我该如何用python编写代码呢?有人能帮我吗?

你的问题是如何在python中使用位字段吗?首先,请注意,这段代码一开始不是标准的C。对位字段使用某些8位类型是一种非标准扩展。此外,C也没有指定位顺序。所以这段代码在C中的作用是谁都猜得到的。