对c++中扫描的未定义引用
undefined reference to scan in c++?
这是我的代码。。。我有二维矩阵A,B。我想开发A和B的产品。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int scan();
int multiply();
int print();
int metxa[3][4],metxb[4][3],resut[3][3];
int main();
{
scan();
multiply();
print();
return 0;
}
int scan();
{
int i;
for(i=0;i<3;i++)
{
scanf("%d %d %d %d",&metxa[i][0],&metxa[i][1],&metxa[i][2],&metxa[i][3]);
}
for(i=0;i<4;i++)
{
scanf("%d %d %d",&metxb[i][0],&metxb[i][1],&metxb[i][2]);
}
}
int multiply();
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
resut[i][j]=metxa[i][0]*metxb[0][j]+metxa[i][1]*metxb[1][j]+metxa[i][2]*metxb[2][j]+metxa[i][3]*metxb[3][j];
}
}
}
int print();
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%dt",resut[i][j]);
}
printf("n");
}
}
system("PAUSE");
return 0;
}
但我得到了链接器错误,未定义对扫描和乘法方法的引用。。。为什么我要得到这个错误?
定义处函数名称后的分号:
int scan();
{
...
}
应为:
int scan()
{
...
}
multiply()
和print()
功能相同。
还有:
scan()
、multiply()
和print()
都不返回值,但它们的返回值是int
scan()
、multiply()
、print()
,并在main()
中声明和定义
以下是可编译状态下发布的代码(我没有声明是否正确):
#include <stdio.h>
#include <stdlib.h>
void scan();
void multiply();
void print();
int metxa[3][4],metxb[4][3],resut[3][3];
int main(int argc, char *argv[])
{
scan();
multiply();
print();
system("PAUSE");
return 0;
}
void scan()
{
int i;
for(i=0;i<3;i++)
{
scanf("%d %d %d %d",
&metxa[i][0],
&metxa[i][1],
&metxa[i][2],
&metxa[i][3]);
}
for(i=0;i<4;i++)
{
scanf("%d %d %d",
&metxb[i][0],
&metxb[i][1],
&metxb[i][2]);
}
}
void multiply()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
resut[i][j] = metxa[i][0]*
metxb[0][j]+metxa[i][1]*
metxb[1][j]+metxa[i][2]*
metxb[2][j]+metxa[i][3]*
metxb[3][j];
}
}
}
void print()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%dt",resut[i][j]);
}
printf("n");
}
}
您需要在调用函数之前声明它,或者至少在稍后的某个地方将它与实现一起转发声明。
#include <stdio.h>
#include <stdlib.h>
void scan();
int main(int argc, char *argv[])
{
scan();
}
void scan()
{
//do stuff
}
或
#include <stdio.h>
#include <stdlib.h>
void scan()
{
//do stuff
}
int main(int argc, char *argv[])
{
scan();
}
您还需要在main()的主体之外声明矩阵。与函数一样,如果您这样做,它们将不可用。
相关文章:
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 对 Scalar ::Scalar() 的未定义引用
- 对复制 CTOR 和 CTOR 的未定义引用
- 对显式实例化的模板函数的未定义引用
- TensorRT (C++ API) 对"createNvOnnxParser_INTERNAL"的未定义引用
- 2个模板化类的非模板友元函数未定义引用错误
- 编译 libfluid 样本控制器时对"event_base_del_virtual"的未定义引用
- 获取对function_name的未定义引用
- 对 'std::thread::_M_start_thread CMake 的未定义引用进行基准测试
- 对结构方法的未定义引用
- 使用内联函数 c++ 的未定义引用
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 对 DLOPEN 的未定义引用
- QT C++中对全局变量的未定义引用
- 快速数学导致对"__pow_finite"的未定义引用
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用