python3 ctypes 的 结构体定义中,怎么引用自身? 5C

我这么使用时提示说“找不到Sentence_link”

 class Sentence_link(ctypes.Structure):
        _fields_= [("para_idx", ctypes.c_ulong), ("sent_idx", ctypes.c_ulong),("sent_init",ctypes.c_int),("msg_buff",ctypes.c_char_p), ("next",ctypes.POINTER(Sentence_link))]
 _fields_= [("para_idx", ctypes.c_ulong), ("sent_idx", ctypes.c_ulong),("sent_init",ctypes.c_int),("msg_buff",ctypes.c_char_p), ("next",ctypes.POINTER(Sentence_link))]
NameError: name 'Sentence_link' is not defined

请问该如何引用自身?

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
[Python]ctypes+struct实现类c的结构化数据串行处理
用C/C++实现的结构化数据处理在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过struct, union, 和bit-fields, C/C++能够以一种最有效率也最自然的方式处理此类问题. 那么问题来了? 用Python如何达到这个目的呢? ...
python调用C++,传递结构体与结构体指针,以及嵌套结构体
#include<iostream>using namespace std;//该文件名称:cpptest.cpp//终端下编译指令://g++ -o cpptest.so -shared -fPIC cpptest.cppstruct sub_struct{    char* test_char;    int test_int;};struct struct_def {    ch...
Python实现结构体
#!/usr/bin/pythonimport sysclass MyClass(): def __init__(self, name = ""): self.name = name self.data_dic = {} self.index = -1 class Struct(): def __init__(self,
Python Ctypes结构体指针处理(函数参数,函数返回)
参考网址: http://www.2cto.com/kf/201109/106444.html test.c(动态库源代码) // 编译生成动态库: gcc -g -fPIC -shared -o libtest.so test.c #include #include #include typedef struct StructPointerTest { char name[2
当用 Python ctypes 模块调用动态链接库,如何传入一个结构体指针
最近用 dv2xvid 这个东东很多,上两周几乎每天都用它跑一个晚上压缩2个小时的视频。于是又萌发了把它改进得更通用的念头。 目前 dv2xvid 有一个很严重的问题,就是只支持 xvid-1.1.0-beta2 的压缩。而事实上目前大家用的最多的是应该都是正式版本,比如 1.0.3 或者 1.1.0 之类。如果想能支持更多版本的 xvid codec,就必须能在压缩之前判断 xvid 的版
结构体的自引用(或者说自身嵌套吧)
晚上学习简单的led驱动程序编写的时候看到链表的实现。在结构体中再一次定义了这个结构体类型的成员,当时感觉这么用什么时候能引用到头,这个结构体怎么结束,带着疑问百度了一下,结果找到了答案,是自己看的太粗心,没有细心看。 结构体作为一种类型,起成员可以是各种基本类型,当然也包括结构体这种类型。当一个结构体中想引用自身的结构时,是可以的,不过要注意用法。下面第一种是错误的,即我刚开始想象的那样子。第
python 调用C程序的结构体和函数
#include typedef struct TestDLL_ { int a; char *b; } testdll; testdll test(testdll t) { t.a=t.a+t.a; printf("%d\n%s\n",t.a,t.b); return t; } from ctypes import * dllpath='test.dll' dll=C
python调用dll, 复杂结构体做参数。
python 调用dll   字节对齐 windows下,弄了一下午 就快要放弃,最后终于有点OK 在此记录,以备后用。 最初尝试 继承ctypes.Structure。本地的是4个字节的对齐,python中用class方式无法指定对齐方式,只能按照默认的对齐,正常的int,double,double 需要24 个字节,而我本地20个字节。 失败。   最后尝试用 truct.pack
C语言 - 结构体的自引用和相互引用
结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。 结构体的相互引用(mutual reference),就是说在多个结构体中,都包含指向其他结构体的指针。 1. 自引用 结构体 1.1 不使用typedef时 错误的方式: struct tag_1{ struct tag_1 A; /* 结构体 */ int va
数据结构学习笔记7——结构体的自引用
《笔记由于是初学者,难免》
神奇的Python ctypes模块
利用python的ctypes模块可以在python中调用c/c++写的代码。 但是c/c++写的代码要编译成dll文件,在dll中导出你想在python中调用的函数或变量。 ctypes的详细用法见官方文档: http://docs.python.org/2/library/ctypes.html 这里只是个人的一个简单总结。 1. 加载Windows系统自带的dll文件:  #加载c
【C语言】结构体包含指向自己的指针
转自:http://flashcs3.blog.163.com/blog/static/1997203142013297569964/ 问题1:两种声明有什么不同? struct x1 {...}; typedef struct {...} x2; 答:第一种形式声明了一个结构标签,第二种声明了一个“类型定义”。主要区别在于第二种声明更抽象一些,用户不必知道它是一个结构,且在声明它的实例时
链表的定义以及结构体,指针相关小结
严蔚敏版的数据结构里面关于单链表的存储结构定义如下 typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList; 《数据结构与算法分析》中关于单链表的存储结构定义如下 struct Node; typedef struct Node *PtrToNode; typedef PtrToNod
python3和c/c++的混合编程(ctypes的使用)
python作为一种胶水语言具有较高的开发效率, 但是其运行效率比较低, 当计算量比较大时,显得力不从心.  而ctypes是python下的一个可以链接c/c++的一个库. 可以将C函数编译成动态链接库, 即window下的.dll文件或者是linux下的.so文件. 这样我们通过使用cytpes可以加速代码的运行速度.test = cdll.LoadLibrary("./caleach.so"...
关于结构体的自引用问题
在一个结构内部包含一个类型为该结构本身的成员是否合法呢?(注意注意)举上一个很简单但是很有说明度的例子:例:struct   SELF_REFL{                         这个是(错误)                                         int a;                                   struct SELF_R...
python 中如何使用 C 类型的数组? ctypes 的用法
【转自】http://hi.baidu.com/jxq61/blog/item/90037f272a9ae46c35a80fdc.html Python 在 ctypes 中为我们提供了类似C语言的数据类型, 它的用途(我理解的)可能是: (1) 与 其他语言(如 C、Delphi 等)写的动态连接库DLL 进行交换数据,因为 python 的 数据与 DLL难以进行数据交换。 (2) p
python 与 C 的交互(ctypes库使用)
python 与 C 的交互(ctypes库使用) ctypes是Python的一个外部库,可以使用python语言调用已经编译好的C语言函数以及数据类型并进行数据交换等。ctypes的官方文档在https://docs.python.org/3/library/ctypes.html 1. ctypes基本数据类型映射表 2. python调用c语言的函数库 1.生成...
为什么类的定义中不能包含自身类型,而可以包含其自身的指针类型和引用类型
一个类可以只有声明没有定义,如: class Simple ; //没有{}部分被视为声明。注意: class Simple { } ; 这个是定义,只不过类是空的而已。只要包含{}就算定义。对于只有声明而没有定义的类,只能声明它的指针类型或引用类型,不能直接声明其对象类型。 class Simple ; void main(void) { Simple simple ;
python中定义结构体的方法
Python中没有专门定义结构体的方法,不过可以使用class标记定义类来代替结构体,其成员可以在构造函数__init__中定义,具体方法如下。    class item:         def __init__(self):             self.name = ''     # 名称             se
打印python的ctype定义的结构中的数据
python ctype print
Python Ctypes 多级指针 传参数 和返回值
最近在搞神经网络框架这块,由于框架是用C++写的但是后续的操作不想再用C++写(主要C++写的头疼)所以准备将后面的工作转入python中写这里涉及到利用Python 和Ctypes 来实现python调用C++的接口。 由于用到很多数组我这里全都是标志着指针的如果是二维就是 double ** arry 三维就是 double *** arry所以肯定是要涉及到多级指针的传入和返回问题接下来
python中运用ctypes库实现c风格变量的定义和调用
ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数。ctypes的官方文档在这里。1. ctypes基本数据类型映射表参数类型预先设定好,或者在调用函数时再把参数转成相应的c_***类型。ctypes的类型对应如下:ctypes typeC typePython Typec_charchar1-character stringc_wcharwch...
Python与C参数交互---结构体指针作为参数 实例
在Python中某些时候需要C做效率上的补充. 在实际应用中,需要做部分数据的交互. Python 可以通用 ctypes 模块很好地调用C. 下面演示了 Python 中调用C一个标准函数. 传递一个结构指针入. 得到C中分配内存数据 传递出. 希望对你的Python 学习有所帮助. 1 test.c #include #include typedef struct
c 结构体的嵌套引用解读
c  结构体的嵌套引用解读 背景:在Linux内核系统中经常能看到如下例1形式的结构体嵌套引用,在代码追踪、走读的时候令人费解。所以在弄清楚结构体的嵌套调用就很有用处了。 概念:                   1、结构的自引用         在一个结构内部包含一个类型为该结构体自身的成员是不合法的。 如下:  struct SELF_REF1 { int  a; str
Python的点点滴滴(ctypes)
前俩天的调查方向:使用Python C extending来扩展Python,使其能够调用中间件的接口,实现起来比较繁琐。突然发现Python提供了ctypes这个包,可以很容易的使用Python直接调用C语言实现的接口,这使得开发的工作量大大降低,只是ctypes是基于libffi实现的跨语言封装,性能上可能会比使用C Extending来得慢一些,只是差距有多少,没时间验证了。Sample 1
结构体的嵌套 自身嵌套 相互嵌套
什么是结构体的嵌套?在结构体的定义中,结构体的成员又是另外一个结构体的变量。结构体嵌套的问题有哪些?结构体的自引用,就是在结构体内部,包含指向自身类型结构体的指针。结构体的相互引用,就是说在多个结构体中,都包含指向其他结构体的指针。结构体应该注意的问题?结构体定义中可以嵌套其他结构体类型的变量,不可以嵌套自己这个类型的变量。可以嵌套自己类型的指针。*************************...
c语言结构体自引用和互引用原理及示例程序
结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。         结构体的相互引用(mutual reference),就是说在多个结构体中,都包含指向其他结构体的指针。 1. 自引用 结构体 1.1 不使用typedef时 错误的方式: [cpp] view plaincopyprint?
Python的学习(三十二)---- ctypes库的使用整理
Python中ctypes的使用整理 ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数。ctypes的官方文档在这里。 1. ctypes基本数据类型映射表 参数类型预先设定好,或者在调用函数时再把参数转成相应的c_***类型。ctypes的类型对应如下: ctypes type C type Pyt
结构体指针的定义和引用
指针变量非常灵活方便,可以指向任一类型的变量,若定义指针变量指向结构体类型变 量,则可以通过指针来引用结构体类型变量。 7.3.1 指向结构体类型变量的使用 首先让我们定义结构体: struct stu { char name[20]; long number; float score[4]; } ; 再定义指向结构体类型变量的指针变量: struct stu *p1, *p
最全ctypes用法总结
ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用DLL中输出的C接口函数。 #### 1.加载dll和取出函数 ```python from ctypes import *    dll = cdll.LoadLibrary(dllpath)   #dllpath是字符串 dll = windll.LoadLibrary(dllpath) ``` 上面两行使用...
python调用dll动态库传入结构体作为参数
test.h中定义结构体 test.h #include #include #define ARRAY_NUMBER 20 #define STR_LEN 20 typedef struct _tag_Struct { int   number; char* pChar;                              //窄字符字符串 c
函数指针&指针函数&结构体调用函数
结构体通过指针调用函数的方法在项目中比较实用:上层函数实现,底层调用从而实现底层通知上层的回调功能!!! 在此说一下函数指针和指针函数这两个概念,下面先说一下两者的区别。 再者就是说一下结构体是如何通过函数指针的方式调用函数的。
python数据结构学习笔记-3-数组
数组,动态数组,list应用(积分排行榜、凯撒密码),二维数组
结构体测试用例struct(指针用例)结构体里面含有指向自己的指针怎么用
struct node {     int data;     struct node *next;     }; VOID teststurct() {     DBG_PRINT("测试用例teststurct******************\n");          struct node *head, first;     struct node *second = (struc...
相互引用的结构体的定义
首先声明,简单的头文件重复包含问题不在此文的讨论范围之内,此问题可以通过下面的文件格式进行解决。 #ifndef __filename_h__ #define __filename_h__ /* code */ #endif  我们这里讨论的头文件互相包含是文件中的内容有互相引用的情况。比如test_a.h文件中定义了结构体TEST_A_S,test_b.h文件中定义了
Python2 & Python3 ctypes 字符串编码类型转换大坑
ctypes介绍 python标准库自带的模块,支持调用C的动态链接库文件(windows下为*.dll,linux下为*.so) 示例代码: # 加载动态链接库文件 ll = cdll.LoadLibrary lib = ll("lib/libTest.so") # 生成函数指针 # 假设库中有函数int foo(char*) foo = lib.foo # 设置参数格式 foo.argt...
Python 使用ctypes调用 C 函数
在python中通过c直接调用c的函数。 ctypes,真是个好东西,python中用这个真是简单易用 下面就一步一步解释用法吧,以Linux为例讲解。 1, 首先确定你的python支持不支持ctypes  python2.7以后ctypes已经是标配了,2.4以后的版本得自己装下ctypes 2,加载动态库       两种加载方式      >>>
python dll c 结构体
加密工具不好写,用到很多结构体,幸好python里面定义了ctypes
ctypes——模块
ctypes 声明——以下代码均在python3.6下测试执行的 初识 msvcrt.printf只打印一个字符 python3.x中 import ctypes msvcrt = ctypes.cdll.msvcrt message_string = 'Hello world!\n' msvcrt.printf('Testing:%s',%message_string)...
黑马程序员----C 语言学习笔记之结构体数组,指针,嵌套的使用
------Java培训、Android培训、iOS培训、.Net培训-------- 一、结构体数组概念及定义 1、概念 数组的元素也可以是结构类型。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体,例如一个班的学生档案,一个车间职工的工资表等。   例如: //方法一:定义一个结构体的同
python ctypes库3_如何传递并返回一个数组
可以将数组指针传递给dll,但无法返回数组指针,python中没有对应的数组指针类型。如果需要返回数组,需借助结构体。参考ctypes官方文档:https://docs.python.org/3.6/library/ctypes.html#structures-and-unions返回一个结构体例程:# 返回结构体 import ctypes path = r'E:\01_Lab\VisualSt...
谈一谈Go的结构体struct的使用方法
定义结构体 package main import ( "fmt" ) type test struct { } func main() { a := test{} fmt.Println(a) } 输出: {} package main import ( "fmt" ) //定义一个person结构,类似于在PHP定义了一个pers
如何在其他文件中调用结构体变量
写个头文件 c.h 声明 一个结构体类型struct STU{ int x; int y;};定义结构体变量s的文件b.c#include "c.h"struct STU s; /* 不加extern ,默认认为extern */a.c 调用b.c里定义的全局变量s#include #include "c.h" /* struct STU这个类型的定义(或者说声明)在这个头文件里 */exte
浅析C++中结构体的定义、初始化和引用
以下是对C++中结构体的定义、初始化和引用进行了详细的介绍,需要的朋友可以过来参考下 定义: 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。 声明一个结构体类型的形式是: 复制代码代码如下: struct Student{      //声明一个结构体类型Student   int num;      
python调用的动态连接库的方法(ctypes)
通过阅读python帮助和一些简单源码,得出以下几点: 1.python实现调用函数,主要依赖于ctypes,ctypes是一个python的外函数库,可以提供与c兼容的数据类型,并允许调用dll或共享库中的方法 eg: fromctypesimport*   (import ctypes) 2.加载动态连接库 Ctypes可以扩展cdll,windows系统下的windll和ole
C语言结构体.ppt
定义结构体类型 定义结构体类型变量 引用结构体变量 给结构体变量赋值 结构体的嵌套 结构体数组 指向结构体类型变量的指针
结构体的自引用及相互引用
在用C来实现数据结构以及部分算法时,经常用到结构体,比如实现树以及树的子节点时,就需要该结构体包含自身类型的成员变量。而最近在研究OC的匿名函数实现时,也涉及到了类似需求。同时,两个结构体之间相互引用也经常遇到问题。故简单总结一下C语言结构体的自引用语法。
python3利用ctypes传入一个字符串类型的列表
pyhon用ctypes向c语言里传入一个字符串类型的列表
Python:类与结构体
class people: #定义一个类people def _init_(self,name,age,sex): self.Name=name self.Age=age self.Sex=sex def speak(self): #定义一个方法speak print "my name"+self.Name实例化对象:
C语言学习-struct结构体定义你自己的数据类型
前言: 在java中有类,内部封装的是一些相关联的数据,例如一个学生,有姓名,年龄,性别,班级,学校等等,这些数据组合到一起就构成了我们的类。而在C中,也可以定义这样一个‘类’(当然C语言中没有类这个概念),那就是结构体--struct,通过结构体把这些相关联的数据给组合起来。 如何定义一个结构体 struct Student{ char name[20]; int age;
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问