C语言函数错误
C language Function errors
我使用C语言,我需要编写一个具有不同功能的程序。我有一些问题,但没有找到解决方法。
有两种函数。这一个
int X(int i, int k){
int p, n;
return p + (i-1)*(n-1) + (k-1);
}
在这个函数中,我有以下错误:错误C2601: 'X':局部函数定义是非法的
另一个是
void Mode(){
matrix_entry temp;
temp=M[i];
M[i]=M[small_i];
M[small_i]=temp;
问题是matrix_entry, temp和M是未声明的标识符
你能帮我找出我的错误吗?由于错误C2601: 'X':局部函数定义是非法的
这听起来像你在另一个函数中定义一个函数;c++不允许这样做。将X
的定义移出它当前所在的函数
另一种可能性是,在X
之前有另一个函数,而您错过了该函数末尾的}
。
问题是matrix_entry, temp和M是未声明的标识符,但在我的主要我有这个:
首先,类型需要在使用之前声明。听起来这个函数要么出现在matrix_entry
的定义之前,要么出现在不同的源文件中。
要么将matrix_entry
的定义移动到任何需要使用它的地方,要么将其放在头文件中,并从每个需要它的源文件中包含它。这将修复matrix_entry
和temp
的前两个"未声明的标识符"错误。
如果M
在main
中,那么它在其他函数中不可用。您可以将它传递给需要它的函数:
void Mode(matrix_entry * M){
matrix_entry temp;
temp=M[i];
M[i]=M[small_i];
M[small_i]=temp;
}
int main() {
matrix_entry *M = new matrix_entry [10];
//...
Mode(M);
//...
// Don't forget to delete anything you new
// (Better still don't new it in the first place,
// or use smart pointers if you must)
delete [] M;
}
相关文章:
- 链接器错误:函数的多个定义
- 编译器错误:函数调用在常量表达式中必须有一个常量值
- 错误:函数声明符之后的预期函数体
- C 错误 - 函数不能超载
- 如何修复传递参数时调用错误函数的主函数?(C++)
- 错误:函数调用中有两个参数
- 错误:函数不是“类”的静态数据成员 - C++
- C ,G 编译错误函数
- CMake 解析错误函数缺少结尾")"。而是找到带有文本的未终止字符串")
- C++ 错误 函数 2 的多重定义
- 错误:函数调用中从int到int(*)[4]的转换无效
- C++14 自动扣除错误:函数返回一个数组
- 视觉C++错误:函数必须返回一个值
- 错误:函数声明中的两种或多种数据类型
- 错误:函数未在作用域中声明
- rtw_android.c错误:函数“strnicmp”的隐式声明[-Weror=隐式函数声明]
- 错误:函数中的return语句没有值,返回“void*”[-fpermission]
- 简单程序中的链接器错误:函数的多重定义
- 错误:函数参数太多
- 错误:函数__tmaincrtstartup中引用的未解析的外部符号_main