Я хочу переместить код, связанный со структурой связанного списка, в отдельный файл.Этот связанный список используется в файлах .pyx и .c.
Текущая реализация: cython_file.pyx:
ctypedef struct linked_list
ctypedef struct linked_list:
double price
double volume
int data
linked_list *next_cell
...
c_file.c:
typedef struct linked_list {
double price;
double volume;
int data;
struct linked_list * next_cell;
} linked_list;
...
ЧтоЯ хочу, чтобы создать LinkedList.h
, LinkedList.c
и LinkedList.pxd
, который будет содержать следующее содержимое:
LinkedList.h:
typedef struct linked_list {
double price;
double volume;
int data;
struct linked_list * next_cell;
} linked_list;
...
LinkedList.c:
#include "LinkedList.h"
...
LinkedList.pxd:
cdef extern from "LinkedList.h":
ctypedef struct linked_list
ctypedef struct linked_list:
double price
double volume
int data
linked_list * next_cell
Я предполагаю использовать это следующим образом: в cython_file.pyx:
from LinkedList cimport *
...
и в c_file.c:
#include "LinkedList.h"
...
Когда я пытаюсь скомпилировать второй вариант, я получаю сообщение об ошибке: LinkedList.h(1): error C2011: 'linked_list': 'struct' type redefinition
Я предполагаю, что эта проблема возникает из-за вложенных структур