gpt4 book ai didi

c - 符号多重定义

转载 作者:行者123 更新时间:2023-11-30 21:13:16 25 4
gpt4 key购买 nike

我这里的 .c 文件和 .h 文件有一些错误。请您帮我找出原因。

file1.h

#ifndef FILE_H_1
#define FILE_H_1
u32 function_1(u32 data);
u32 function_2(u16 data);
#endif

file2.h

#ifndef FILE_H_2
#define FILE_H_2
u32 function_1(u32 data);
u32 function_3(u16 data, u16 reg);
#endif

ma​​in.c

#include "file1.h"
static u32 function_3 (u32 data)
{
//do something;
}

void main() {
u32 m = function_1(0);
}

file1.c

#include "file1.h"
u32 function_1 (u32 data) {
return 2*data;
}
u32 function_2(u16 data) {
return 3*data;
}

file2.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 data)与u32 function_3(u16 data,u16 reg)不兼容。尽管我只在main.c中#include“file1.h”。

请帮我解决这个问题。

谢谢。

最佳答案

C++ 允许具有相同名称(具有不同参数)的函数,但 C 不允许。您只需修改其中一个函数名称即可消除错误。

关于c - 符号多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com