我最近研究了使用C中的头文件定义函数。 我在网上遵循了一个教程,但是遇到了一个问题: 如果我使用命令提示符并运行在项目文件夹中创建的可执行文件,它将从main.c文件中获取输入,并像我期望的那样将其传递给函数。
The command that I typed in Command Prompt was:
gcc matrix_product.c main.c
在main中,我可以调用该函数(我将其命名为matrix_product),并且它可以识别该函数。但是,当我尝试在CodeBlocks中构建它时,编译器指出2个错误: 未定义对“ matrix_product”的引用 错误:1d返回1退出状态
这是代码:
main.c
#include stdio.h
#include stdlib.h
#include "matrix_product.h"
#define N 3
int m[N][N]={
{1,2,3},
{4,5,6},
{7,8,9}
};
matrix_product(m,3);
return 0;
}
matrix_product.c
#include stdio.h
#include "matrix_product.h"
void matrix_product(int m[][3],int DIM)
{
int i,j,k;
int tmp[DIM][DIM];
for(i=0;i<DIM;i++){
for(j=0;j<DIM;j++){
tmp[i][j]=m[i][j];
m[i][j]=0;
}
}
for(i=0;i<DIM;i++){
for(j=0;j<DIM;j++){
for(k=0;k<DIM;k++){
m[i][j]+=tmp[i][k]*tmp[k][j];
}
}
}
}
matrix_product.h
#ifndef MATPROD
#define MATPROD
void matrix_product(int m[][3],int DIM);
#endif // MATPROD