在同一行创建多个"char*"变量时出现无效类型错误

2024-04-30 04:42:50 发布

您现在位置:Python中文网/ 问答频道 /正文

在Cython 0.19.1中具有以下功能:

cdef dot(int m, int n, int k, char* transa='N', char* transb='N'):
    cdef char* check_transa='N', check_transb='N'
    if(transa==check_transa):
        lda = m
    else:
        lda = k
    if(transb==check_transb):
        ldb = k
    else:
        ldb = n
    ldc = m

我有个错误:

Invalid types for '==' (char *, char)

但是只要把变量声明放在两行中,比如:

cdef char* check_transa='N'
cdef char* check_transb='N'

成功了。。。你知道吗

是虫子还是应该这样工作?你知道吗


Tags: 功能ifcheck错误elsedotcythonint
1条回答
网友
1楼 · 发布于 2024-04-30 04:42:50

这就是C(扩展为Cython)类型声明一直以来的工作方式。线路

char *a, b;

a声明为char *,而b将是char。要声明两个字符指针,还可以

char *a, *b;

但我建议养成使用单独行的习惯,这样更不容易出错。你知道吗

相关问题 更多 >