我在这里对.c文件和.h文件有一些错误。您能帮我找到原因吗?
文件1.h
#ifndef FILE_H_1
#define FILE_H_1
u32 function_1(u32 data);
u32 function_2(u16 data);
#endif
文件2.h
#ifndef FILE_H_2
#define FILE_H_2
u32 function_1(u32 data);
u32 function_3(u16 data, u16 reg);
#endif
main.c
#include "file1.h"
static u32 function_3 (u32 data)
{
//do something;
}
void main() {
u32 m = function_1(0);
}
文件1.c
#include "file1.h"
u32 function_1 (u32 data) {
return 2*data;
}
u32 function_2(u16 data) {
return 3*data;
}
文件2.c
#include "file2.h"
u32 function_1(u32 data){
return data;
}
u32 function_3(u16 data,u16 reg){
return 5*data + reg;
}
它可以编译,但是有错误链接器。
问题是“ u32 function_3(u16数据)与u32 function_3(u16数据,u16 reg)不兼容。尽管我在main.c中仅#include“ file1.h”。
请帮助我修复它。
谢谢。
最佳答案
C ++允许使用具有相同名称(具有不同参数)的函数,但C不允许。您只需修改其中一个函数名称即可消除错误。
关于c - 符号乘法定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31963738/