为什么我的代码不使用类型转换进行编译?
Why is my code not compiling using typecast?
为什么这段代码不能编译?
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 中将制作模式声明为字符串,但它无法编译。
错误消息是"错误:预期的声明说明符或'...'在"("标记"之前。这是我的班级的算法,我的教授给了我们带有这些参数的函数。此外,"模式是指向长度为 m 的 \0 终止字符串的 k 指针数组。我只想知道为什么给定的函数不编译,即使你只写 return -1。
类型说明符不得括在声明的括号中。您声明了一个函数。它不是对带有参数的函数的调用,而您确实可以应用强制转换。
将二维字符数组或包含字符串的类型为char *
的元素的数组重新解释为一维数组是没有意义的。
考虑到参数的声明
char * patterns[]
相当于
char ** patterns
char *
是一个类型声明,而不是类型转换(即转换)。
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- 用c++把小数点转换成八进制
- 如何在C++中将十六进制字符串转换为文本数据
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 使用 sprintf 将十六进制0xAABBCC转换为字符串"AA:BB:CC"
- 如何将带有十六进制值的 std::string 转换为 std::vector<无符号字符>
- 将字符串(可以是十进制字符串或十六进制字符串)转换为整数C++
- 在Arduino中将字符串转换为(逗号分隔的十六进制)字符串到无符号字符数组
- 将 std::string( "x3BxDEx7C" ) 转换为可读的十六进制字符串?
- 将十六进制转换为 DEC
- C++ 将十六进制字符串表示形式转换为十六进制字符串表示形式
- 字符数组到十六进制字符串的转换 - 意外输出
- C++将 wwn 字符串转换为识别为十六进制的数据类型
- 将字符串存储为十六进制而不进行转换
- 在C++中,将无符号整数转换为八进制表示,反之亦然的最佳方法是什么
- 将字符串转换为十六进制数组c++
- 使用 fopen 读取C++文本文件,无需换行转换