gpt4 book ai didi

c - C中的重复符号错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:20 25 4
gpt4 key购买 nike

我有以下代码布局

标题.h

#ifndef _header_h
#define _header_h
void empty(float *array, int l)
{
int i;
for (i=1 ; i<=l ; i++)
{
array[i]=0;
}

}

#endif

和两个文件(我们称它们为 file1.c 和 file2.c)

#include "header.h"

void function/*1 or 2*/(){

....
empty(a,b);
....
}

所以编译工作正常,但链接器命令失败,因为编译器说存在重复的函数定义。如何通过仍然使用头文件来避免这种情况?当我只在标题中定义函数并创建另一个包含完整函数的 .c 文件时,它工作正常。我一直认为在 header 中声明它是可行的方法。

最佳答案

I always thought declaring it in the header is the way to go.

是的,是的。在 header 中声明 就可以了。不过,在 header 中定义它没有任何好处。 (除非它是 static inline,但现在您可能不想这样做。)

关于c - C中的重复符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54528979/

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