1

在 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'

让它工作......

它是一个错误还是应该以这种方式工作?

4

1 回答 1

2

这就是 C(以及扩展的 Cython)类型声明一直有效的方式。线

char *a, b;

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

char *a, *b;

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

于 2013-08-09T17:03:00.187 回答