gpt4 book ai didi

c++ - 为什么我的代码没有使用类型转换进行编译?

转载 作者:行者123 更新时间:2023-11-30 20:48:23 24 4
gpt4 key购买 nike

为什么这段代码无法编译?

int substring(char * text, int k, int m, (char *) patterns[]) {
//stuff
// and example return is -1, meaning the sub string was not found
}

我知道 (char *) 中的括号是问题所在,但我似乎不明白为什么?我尝试在 C++ 和 C 中将模式声明为字符串,但它无法编译。

错误消息是“错误:预期的声明说明符或‘(’标记之前的‘...’”。这是我的类(class)的算法,我的教授为我们提供了带有这些参数的函数。此外“模式是一个数组k 指向长度为 m 的以\0 结尾的字符串。我只是想知道为什么给定的函数即使只写 return -1 也无法编译。

最佳答案

声明中的类型说明符不应括在括号内。你声明了一个函数。当您确实可以应用强制转换时,它不是对带有参数的函数的调用。

将二维字符数组或包含字符串的 char * 类型元素的数组重新解释为一维数组是没有意义的。

考虑到该参数的声明

char * patterns[]

相当于

char ** patterns

关于c++ - 为什么我的代码没有使用类型转换进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40938728/

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