错误:函数被视为微[英] error: function is taken as an micro

问题描述

大家好,

我使用一个名为 minor 的函数来查找 a 元素的次要元素
矩阵,
我将其声明为:

float minor(float A[ ][COL],int m,int n,int i,int j);//找次要
在 A[][]

并稍后在文件中将其定义为:
浮动次要(浮动A [] [COL],int m,int n,int i,int j)
{
if(m==0 ||n==0)//单列或单行
返回1.0;

float temp[ROW][COL];//用于查找mod的温度矩阵(会有一行
和\
//小于父矩阵
int p,p1,q,q1;//索引
for(p=0,p1=0;p<=m&&p1<=(m-1);p++,p1++){
如果(p==i){
p1--;
continue;//忽略第i行
}
for(q=0,q1=0;q<=n && q1<=(n-1);q++,q1++){
如果(q==j){
q1--;
continue;//忽略第j列
}
温度[p1][q1]=A[p][q];

}
}

float x= mod(temp,m-1,n-1);//返回温度的行列式
返回 x;
}


当我使用 gnu g++ 编译它时,会出现以下错误:
solve_equation.cpp:13:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:68:49:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:76:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:121:51:错误:宏"次要"传递了 5 个参数,
但只需要 1
solve_equation.cpp:76: 错误:无效的函数声明
似乎编译器将函数 minor() 作为宏.....
但是为什么???
函数声明怎么无效??

我在fedora c8 上使用gnu g++ ........
谢谢

mohan gupta

推荐答案

8 月 21 日 12:19*pm,mohi <mohangupt...@gmail.com 写道:
似乎编译器将函数 minor() 作为宏.....
但是为什么???
以及函数声明如何无效?
那不是标准的宏;这是特定于您的代码的内容,
您的系统或第三方库.你可以在你的
中#undef标题:

#ifdef 次要
# undef 次要
#endif

干杯!--M

2008 年 8 月 21 日星期四 09:19:40 -0700,mohi 写道:
大家好,

我使用一个名为 minor 的函数来查找 a 元素的次要元素
矩阵,
我将其声明为:

float minor(float A[ ][COL],int m,int n,int i,int j);//在
中找到次要一个[][]
[...]
当我使用 gnu g++ 编译它时,会出现以下错误:
solve_equation.cpp:13:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:68:49:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:76:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:121:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:76: 错误:无效的函数声明
似乎编译器将函数 minor() 作为宏.....但是
为什么???
也许真的*是*在某处定义了一个名为"minor"的宏?试试
给你的函数一个不同的名字,看看它是否可以编译.或者插入
一些代码如:

#ifdef 次要
#error 宏次要已定义!
#endif

在你的函数声明之前.
以及函数声明如何无效?
如果在
点定义了宏"minor",则无效声明,因为预处理器将替换
中的"次要"宏在编译器看到之前你的函数声明.

--
Lionel B

8 月 21 日晚上 9:37,Lionel B <m...@privacy.net 写道:
2008 年 8 月 21 日星期四 09:19:40 -0700,mohi 写道:
大家好,
我使用一个名为 minor 的函数来查找 a 元素的次要元素
矩阵,
我将其声明为:
float minor(float A[ ][COL],int m,int n,int i,int j);//在
中找到次要一个[][]

[...]
当我使用 gnu g++ 编译它时,它给出了以下错误:
solve_equation.cpp:13:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:68:49:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:76:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:121:51:错误:宏"次要"传递了 5 个参数,但是
只需 1
solve_equation.cpp:76:错误:无效的函数声明
似乎编译器将函数 minor() 作为宏.....但是
为什么???

也许真的*是*在某处定义了一个名为"minor"的宏?试试
给你的函数一个不同的名字,看看它是否可以编译.或者插入
一些代码如:

#ifdef 次要
#error 宏次要已定义!
#endif

在你的函数声明之前.
以及函数声明如何无效?

如果在
点定义了宏"minor",则无效声明,因为预处理器将替换
中的"次要"宏在编译器看到之前你的函数声明.

--
莱昂内尔 B
谢谢你们……
那是次要被声明为宏的真正问题
某处:::

但我从来没有将它定义为微型,我也不使用任何第三个
党图书馆,
我的代码的起始包含和函数声明如下:

#include
#include<cmath>
#include

使用命名空间标准;

#define ROW 20
#define COL 20
#ifdef 次要
#undef 次要
#endif

void get_array(float [ROW][COL],int* ,int* );//获取数组中的输入
void inverse(float [][COL],int ,int);//反转数组
void multiply(float [][COL],int,int,float [][COL],int,int,float
result[][COL] );//两个数组相乘
float minor(float A[][COL],int m,int n,int i,int j);//找次要
在 A[][]
float mod(float A[][COL],int m,int n);
void transpose(float temp[][COL],int m,int n,float A[][COL]);//查找
A中temp的trnpos
void display(float A[][COL],int m,int n);//显示数组A[][]
void divide(float array[][COL],int m,int n,float value);//除法
矩阵数组 by
//值

(我现在未定义未成年人),,,,但据我所知,所有标准
libarray 变量用下划线声明
说"__micro "(我知道这不是一个硬性规定)所以
它可以在哪里声明????可以在 cmath 中吗???
谢谢
莫汉

本文地址:https://www.itbaoku.cn/post/1050784.html