gpt4 book ai didi

c - 如何包装特定代码?

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:06 25 4
gpt4 key购买 nike

我有一个如下所示的 C 函数:

int parse_commandline_options1 (cl1_option_t co[], char ***res, 
char ***last_vals, int argc, char *argv[]);

我想用 Cython 包装它,但我遇到了问题。这是我的 cython 代码:

cdef extern from "pclo1.h":
ctypedef struct cl1_option_t:
pass

int parse_commandline_options1(cl1_option_t, char***, char***, int, char[]*)

cdef class Options:

cdef readonly cl1_option_t clo

cdef cl1_option_t Get(self):
return self.clo

property short_name:
def __get__(self):
return self.clo.short_name

property long_name:
def __get__(self):
return self.clo.long_name

def ParseCommandLine(char ***a, char ***b, char *c[]):
o = Options()
parse_commandline_options1(o.Get(), a, b, 0, c)
return o # ^ error here

Cython 告诉我 Cannot assign type 'char **' to 'char(*)[]' 但我不知道这个错误意味着什么

最佳答案

虽然我不是专家,但乍一看,您似乎正在解析一个指向数组的指针,它需要一个指针数组

int parse_commandline_options1(cl1_option_t, char***, char***, int, char[]*)

而另一个命令是:

def ParseCommandLine(char ***a, char ***b, char *c[])

这就是为什么该函数存在问题,因为类型不同。

建议的修复

编辑其中一个函数,使它们匹配。我会说改变:

int parse_commandline_options1(cl1_option_t, char***, char***, int, char[]*)

int parse_commandline_options1(cl1_option_t, char***, char***, int, char* [])

这应该可以解决您眼前的问题,但如果它确实需要一个指针数组(如果我对代码的解释是正确的),您将需要更新该函数。


希望这会有所帮助,我相信聪明的人会评论真正的原因! :)

关于c - 如何包装特定代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com